Änderung der WordPress Permalinkstrukur und Verzeichnis

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.

Eine Antwort für “Änderung der WordPress Permalinkstrukur und Verzeichnis”

  1. Weblogie sagt:

    Hallo,

    ich habe gerade deinen Artikel über Google gefunden, als ich auf der Suche nach den WordPress Redirect System war. Dies scheint ein eigener Controller zu sein und ich möchte wissen, wo und wie er greift.

    Was dein beschriebenes Problem im letzten Absatz angeht:

    Ich vermute, dass der entsprechende Redirect-Header noch vom Browser gecacht ist. Das ist sehr nervig und führte auch bei uns schon oft zu Problemen.

    Entweder man nutzt einen weiteren Browser, mit dem dieser Header noch nicht aufgerufen wurde, oder versucht den Header aus dem Cache zu löschen (was bei mir nie wirklich zuverlässig zu funktionieren scheint). Im Normalfall scheint ein derartiger Header jedoch nur für ca. 1 Tag gecacht zu werden.

Kommentar schreiben

Image | WordPress Themes | Blogverzeichnis - Blog Verzeichnis bloggerei.de