Zur Navigation

weiterleitung von einer unterseite auf eine andere

1 martin (Gast)

Hallo!
ich eine Frage zu weiterleitungen per .htaccess.
Wir möchten eine Domain auf ein neues System umziehen und deshalb die alte Linkstruktur auf die neue weiterleiten. Da es vorher großes chaos war muss ich allen Seiten von Hand ein entsprechendes Gegenstück zuweisen. auf diesem System laufen auch mehrere Domains, es sollen aber nur die links von einer umgeleitet werden. ich hab das so probiert:

RedirectPermanent http://www.xyz.de/order/datei.html /sprache/neuerordner/datei.html

weiter unten wird dann noch die url per RegEx auseinandergelegt und als GET weitergegeben.

klingt soweit gut, geht aber leider nicht :( (internal server error)

Hast du einen tipp für mich woran das liegt??

Vielen Dank schonmal!
martin

14.09.2010 15:47

2 Jörg

Die vollständige URL muss hinten stehen, nicht vorne

RedirectPermanent /order/datei.html http://www.xyz.de/sprache/neuerordner/datei.html

weiter unten wird dann noch die url per RegEx auseinandergelegt und als GET weitergegeben.

Das könnte u.U. auch noch Probleme verursachen - in dem Fall musst du mit Modrewrite und dem [L] Flag weiterleiten

14.09.2010 18:15

3 martin (Gast)

Ich habs so probiert, auch mit einigen varianten aber er sagt immer dass er die seiten nicht findet:

RewriteRule ^/order/datei.html http://www.xyz.de/sprache/neuerordner/datei.html [L,R=301]

Wo lieg ich falsch? und müsste die domäne nicht vorne stehen dass die regel nur auf diese Domäne angewendet wird? oder kann ich das mit RewriteCond definieren?

14.09.2010 20:19

4 Jörg

Lass mal den Slash am Anfang weg:

RewriteRule ^order/datei\.html http://www.xyz.de/sprache/neuerordner/datei.html [L,R=301]

und müsste die domäne nicht vorne stehen dass die regel nur auf diese Domäne angewendet wird? oder kann ich das mit RewriteCond definieren?

Ja, die betreffende Domain definierst du mit RewriteCond

14.09.2010 20:27

5 martin (Gast)

da tut sich nix...

es sieht momentan genau so aus:


RewriteCond %{HTTP_HOST} ^(www)?\.xyz\.com$
RewriteRule ^en/apartments/index\.php\?ort=Frankfurt http://www\.xyz\.com [L,R=301]

ich hab auch schon = maskiert, tut sich aber nichts...

14.09.2010 20:42

6 Jörg

Der Query String gehört in eine eigene RewriteCond

RewriteCond %{HTTP_HOST} ^(www\.)?xyz\.com$
RewriteCond %{QUERY_STRING} ort=Frankfurt
RewriteRule ^en/apartments/index\.php http://www\.xyz\.com/? [L,R=301]

Mit dem abschließenden "?" an der Ziel-URL verhinderst du, dass der Query String wieder hinten drangehängt wird

Und den Punkt hinter "www" würde ich noch mit in die Klammer nehmen, da er nicht alleine vorkommt

14.09.2010 20:54

7 martin (Gast)

Super, es geht!

Vielen Dank für die schnelle Hilfe!!!

14.09.2010 21:05

Beitrag schreiben (als Gast)

Beim Verfassen des Beitrages bitte die Forenregeln beachten.





[BBCode-Hilfe]