Hallo zusammen!
Bei einem Relaunch haben wir die Ordnerstruktur und Namenskonventionen für vorhandene (& neue) Inhalte geändert. Nun gibt es natürlich tausende Bookmarks, die ins Leere führen. Normalerweise kann das ja relativ einfach mit einer Rewrite-Anweisung in der .htaccess behoben werden. Konkret wären das folgende Weiterleitungen:
www.mydomain.de/zeitschrift/ausgabe/250_ThemaXY (Infos zur Ausgabe) oder
www.mydomain.de/zeitschrift/ausgabe/250_ThemaXY/artikel/audiobeitrag?b_start:int=26 (Artikel in einer Ausgabe mit zusätzlichen Query-String)
soll beides weitergeleitet werden auf
www.mydomain.de/printausgabe/heft-250
In der .htaccess steht dann
RewriteEngine On
RewriteRule "^zeitschrift/ausgabe/([0-9]{3})(.*)$" "printausgabe/heft-$1" [R,QSD]
Bei mir lokal auf dem Rechner (mac mit apache) funktioniert das auch wunderbar!
Also:
- Das Verzeichnis zeitschrift/ausgabe/ wird in das neue Verzeichnis printausgabe/ geleitet. (Funktioniert komischerweise nicht mit vorangestelltem /)
- Die ersten drei Zahlen [0-9]{3} werden zur weiteren Verwendung "gespeichert". Der Rest der URL verworfen, bzw. in einer dann nicht weiter verwendeten "Back-Reference" gespeichert (.*)$.
- Im neuen Verzeichnis printausgabe wird dann die Seite heft-$1 ($1 wird durch die ersten drei Zahlen ersetzt) aufgerufen. Die Flag QSD steht für "Query String Discart", verwirft also in unserem Fall das ?b_start:int=26
Leider funktioniert das auf der Live-Seite überhaupt nicht!
Die .htaccess wird aufgerufen und verarbeitet. Als QuickFix habe ich z.B. RedirectMatch permanent /zeitschrift/ausgabe/250_ThemaXY /printausgabe/heft-250 reingeschrieben. Das funktioniert, ist aber unbefriedigend, da das für jede Ausgabe manuell eingetragen werden muss und außerdem der Query-String erhalten bleibt…
Irgendwelche Ideen? Danke!
(Das ganze läuft übrigens auf einem "Reseller Webhosting 4000"-Paket)