Aus Zeitgründen habe ich meine Webseite von Typo3 auf WordPress umgestellt. Da ein Großteil der Besucher meines Blogs diesen über wenige statische Adressen (Permalinks) erreicht, wollte ich diese natürlich unbedingt erhalten.
Bisher waren alle Artikel entweder unter
https://www.gsurf.de/index.php?id=xx
oder unter
https://www.gsurf.de/Artikelname.html
erreichbar. Das neue Format bei WordPress sieht etwas anders aus:
https://www.gsurf.de/Artikelname
Um bei einem Aufruf der alten Permalinks eine Weiterleitung auf die aktuellen Artikel zu erreichen, habe ich mich des Apache2 Moduls mod_rewrite bedient.
Voraussetzungen
Damit das Modul verwendet werden kann, muss es zunächst aktiviert werden. Je nach Betriebssystem ist das Vorgehen dabei unterschiedlich. In meinem Fall konnte das Modul unter Debian mit
#a2enmod rewrite
aktiviert werden.
Die Eigentlichen Weiterleitungen werden dann inder Datei .htaccess im Hauptordner der Worpress-Installation konfiguriert. Damit die Einstellungen für mod_rewrite im .htaccess-File überschrieben werden können, muss dies in der Konfigurationsdatei der betreffenden Webseite eingestellt werden. Unter Debian liegt die Konfigurationsdatei der Standardwebseite unter
/etc/apache2/sites-available/default
Dort muss die Zeile
AllowOverride None
Ersetzt werden durch
AllowOverride All
Einrichtung der Weiterleitungen
Die eigentlichen Weiterleitungen in der Datei .htaccess sehen bei mir so aus:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
.
.
.
#mISDN V2 und LCR
RewriteRule ^projekte/asterisk/asterisk-mit-misdn-v2-und-lcr.html installation-von-misdn-v2-und-lcr/ [R=301,L]
RewriteCond %{QUERY_STRING} ^(.*)id=56$ [NC]
RewriteRule ^(.*)$ installation-von-misdn-v2-und-lcr/? [NC,R=301,L]
.
.
.
</IfModule>
Die Syntax lautet hierbei
RewriteRule <Ursprüngliches Ziel> <Weiterleitungsziel>
Mit RewriteCond
wird jeweils eine Bedingung festgelegt, die erfüllt sein muss, die Regel in der darauf folgenden Zeile angewendet wird.
Die erste Regel ist daher noch relativ selbsterklärend. Interessant ist die Definition der Bedingung in der zweiten Zeile. Mit %{QUERY_STRING
} wird nach einem Bestimmten String in der Anfrage gesucht. Dies ist nötig, um per GET übergebene Parameter, wie in diesem Fall die Site-ID, auswerten zu können. Das Suchmuster wird als zweite Parameter übergeben (.*)
steht hier für einen beliebigen String. Die Regel gilt also für alle Anfragen, die den String id=56
enthalten. Die Regel in der nächsten Zeile leitet dann alle die Anfragen an die gewünschte Zieladresse weiter.
Der Parameter R=301
am Ende jeder Regel sorgt dafür, dass der HTTP-Status 301/Moved Permanently
zurückgegeben wird. Dies ist nötig, damit Suchmaschinen den Umzug erkennen und zukünftig auf die neue Adresse verweisen.
Ergebnis
Mit der beschriebenen Vorgehensweise konnte alle wichtigen Links erhalten werden. Auf diese Art und Weise verliert man bei einer solchen Umstellung nicht die über Jahre mühsam erarbeiteten Links und Rankings in Suchmaschinen.