Mod_rewrite für URL
Sasch
- programmiertechnik
Hallo,
ich habe meine Seite komplett überarbeitet. Auch die (in meinem Ermessen vorher schlechte) Struktur habe ich geändert.
Vor dem Relaunch sah die URL zu den News so aus ...
http://www.xyz.de/index/start/nachricht.php?id=xyz
jetzt so
http://www.xyz.de/news.php?id=xyz
Ich würde jetzt gerne wissen, ob ich mittels mod_rewrite die URL bearbeiten kann, soll heißen: wenn man die alte URL kommt, soll man zur neuen umgeleitet werden.
Ist das möglich? Wenn ja, könnt Ihr mir einen Anhaltspunkt geben (gerne natürlich auch eine konkrete Lösung).
Vielen Dank!
Ist das möglich?
Ja.
Wenn ja, könnt Ihr mir einen Anhaltspunkt geben [...]
Wenn der Pfad /index/start/nachricht.php entspricht, leite diesen auf news.php um und hänge den Querystring bei Bedarf wieder an - eine sehr triviale Sache die auch direkt in der mod_rewrite-Doku erklärt wird.
RewriteRule ist dein Freund - sollte ein 1-Zeiler werden.
Hi!
Ich würde jetzt gerne wissen, ob ich mittels mod_rewrite die URL bearbeiten kann, soll heißen: wenn man die alte URL kommt, soll man zur neuen umgeleitet werden.
Es kommt darauf an, was du erreichen willst. mod_rewrite ist primär dazu gedacht, eine aufgerufene URL so auf eine auszugebende Ressource (Datei, Script) umzuleiten, dass der Browser davon nichts mitbekommt. Die Übersetzung findet serverintern statt. Der zweite Weg ist, einen Redirect an den Client zu senden.
Auch das kann man mit mod_rewrite erledigen (vollständige Ziel-URL oder spezielles Flag setzen), jedoch gibt es mit den Redirect...-Direktiven auch eine "kosten"günstigere Variante.
Was sind nun die Unterschiede zwischen Redirect und internem Umschreiben? Bei einem Redirekt bekommt der Client die Änderung mitgeteilt, kann also seine Datenhaltung (z.B. Suchindex oder Bookmarks) anpassen. Beim internen Umschreiben wird er immer wieder die alten Ressourcen anfragen. Allerdings wirst du auch beim Redirekt nicht irgendwann die alte URL totlegen können, wenn du nicht Links auf deine Seiten außer Kraft setzen willst, die in anderen Angebote eingebaut sind.
Lo!