Gestern stand ich vor der Situation bei einem WordPress Blog das WordPress Verzeichnis und die Permalinkstruktur zu ändern. Oberstes Ziel war natürlich die Backlinks zu erhalten.
Alter Blog lag in domain.com/wordpress und hatte die Permalinkstruktur /index.php/%year%/%monthnum%/%day%/%postname%/
Neuer Blog soll in domain.com/blog liegen und die Permastruktur/%postname%/ bekommen.
1. 301 Redirect im Root Verzeichnis
Redirect 301 /wordpress http://domain.com/blog
2. WordPress Plugin Dean’s Permalinks Migration 1.0
Plugin installieren und alte Permalinkstruktur in den Plugin Einstellungen eintragen.
3. Permalinks Einstellungen
Im Feld Individuelle Struktur /%postname%/ eintragen
Für die Permalink Struktur kann natürlich auch eine andere Struktur gewählt werden, oft empfohlen wird zum Beispiel /%category%/%postname%/
4. Zusätzlicher Hack in WordPress .htaccess
Mit diesem Punkt verhält es sich eigenartig. Nur mit obigen drei Schritten zeigte mir ein Aufruf einer alten Url eine 404 Fehler Seite. Die Url wurde z.B von domain.com/wordpress/index.php/2007/05/10/artikel/ auf domain.com/blog/index.php/2007/05/10/artikel/ umgeschrieben, das Permalink Migration Plugin schien aber nicht zu greifen.
Erst ein WordPress Hack in der .htaccess im neuen WordPress Verzeichnis brachte die Lösung.
RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ http://www.domain.com/$4
Die Umleitung klappte nun reibungslos, die Artikel wurden ordnungsgemäß angezeigt.
Jetzt kommt das Eigenartige: Mittlerweile hat WordPress die .htaccess aktualisiert und diese Zeile aus der Datei gelöscht. Trotzdem funktioniert die Weiterleitung und das Umschreiben tadellos. Ich vermute irgendeinen Zusammenhang mit der Datenbank und dem Migration Plugin.