Seite 1 von 1

Verzeichnishierachie flacher machen - Endlosschleifen

Verfasst: 02.12.2013, 13:28
von sweih
Hi,

ich habe folgende Ausgangslage als URL:
www.site.com/www/de/stadt/berlin.html

Zielhierarchie ist:
www.site.com/stadt/berlin

Also will ich mit mod_rewrite möglichst ohne viel Umbauarbeiten zu machen (natürlich werden die internen Links angepasst) Umleitungen bauen.

www.site.com/stadt/berlin soll intern den Code von www.site.com/www/de/stadt/berlin.html rausrendern, kann ich erreichen mit:

RewriteRule ^stadt/(.*)$ /www/de/stadt/$1.html [L]


Die alte Seite soll auf die neue URL umgeleitet werden - ist auch kein Hexenwerk:
RewriteRule ^www/de/stadt/(.*).html /stadt/$1 [R=301,L]

Beide Regeln einzeln funktionieren. Zusammen jedoch gibt es einen Endlosredirect - Wie kann ich das unterbinden?

RewriteRule ^www/de/stadt/(.*).html /stadt/$1 [R=301,L]
RewriteRule ^stadt/(.*)$ /www/de/stadt/$1.html [L]

Danke schonmal vorab!!

Verfasst:
von

Verfasst: 02.12.2013, 21:32
von Thomas B.
Existieren die Seiten als .html auf dem Server oder gibt es noch weitere RewriteRules?

Verfasst: 03.12.2013, 06:43
von SloMo
sweih hat geschrieben:Beide Regeln einzeln funktionieren. Zusammen jedoch gibt es einen Endlosredirect - Wie kann ich das unterbinden?

RewriteRule ^www/de/stadt/(.*).html /stadt/$1 [R=301,L]
RewriteRule ^stadt/(.*)$ /www/de/stadt/$1.html [L]
Du könntest der zweiten Zeile einen Parameter (z.B. ?noredirect) mitgeben und die erste mit "RewriteCond %{QUERY_STRING} ..." einschränken.

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 03.12.2013, 13:52
von sweih
@Thomas B. Es ist alles noch viel schlimmer: berlin.html ist ein Verzeichnisname, darin liegt eine index.php

@SloMo: Würde gerne das anhängen vermeiden, um die URLS sauber zu halten.

hab eine php-seitige Lösung im Köcher die seit gestern abend auch funktioniert (ich frag dort einfach die REQUEST_URI ab und vergleich die dann und mach den 301er Redirec von www/de mit php).

Verfasst: 03.12.2013, 21:53
von Thomas B.
Also greifen da noch weiter Umschreibungen.

Du könntest auch im Verzeichnis www/de/ eine .htaccess erstellen die das macht.

Code: Alles auswählen

RewriteRule ^stadt/(.*).html /stadt/$1 [R=301,L] 
Aber das alles klingt nach einem etwas chaotischen System.

Verfasst: 03.12.2013, 22:14
von SloMo
sweih hat geschrieben:@SloMo: Würde gerne das anhängen vermeiden, um die URLS sauber zu halten.
Jaja das ist Quatsch. Die parametrisierte URL wäre nach außen unsichtbar gewesen und nur zum Unterbrechen der Endlosschleife da gewesen.

Deine PHP-Lösung ist gleichwertig. Hätte es auch so gemacht.