Weiterleitungen auf andere Seiten in DokuWiki
Wenn man in DokuWiki die Anordnung einer Seite innerhalb einer Struktur ändert, sollten auch Benutzer an den neuen Ort weitergeleitet werden, die noch die alte URL aufgerufen haben.
Dies wird hier im Wiki mit dem Plugin Redirect gelöst.
Wenn sich über die Zeit jedoch sehr viele diese Weiterleitungen ansammeln (in unserem Fall aktuell 125), dann ist die Vorgehensweise des Plugins unpraktisch, weil es die Weiterleitung mittels des HTTP-Codes 302 (Found) realisiert. Suchmaschinen z. B. oder auch normale Browser werden somit trotzdem immer beim ursprünglichen Link die Seite anfragen statt beim neuen.
Damit hier ein HTTP Statu-Code 301 “Moved Permanently” an den Client geschickt wird, lässt sich z. B. das Plugin abändern.
Habe mich jedoch für eine meiner Ansicht nach schönere Methode entschieden, eine direkt über .htaccess.
Dafür wurden alle Einträge von Weiterleitungen des Plugins in eine Textdatei eingefügt und diese mit einem Einzeiler verarbeitet, die jede der Zeilen in eine Zeile mit RewriteRule umwandelt. Das Ergebnis wurde dann in die .htaccess des Wikis eingefügt.
FIXME Soweit die Theorie, in der Praxis tut das noch nicht :)
while read line; do echo $line | tr ':' '/' | sed -n -r -e 's#(.*) (.*)#RewriteRule /\1 /\2 [R=302]#p' ; done < fw.txt > fw_htaccess.txt