Wordpress 2.6 und Permalink-Problem
Zuerst: Wordpress 2.6 ist da! Mit tollen neuen Features (Revisionierung von Beiträgen!), aber leider auch Bugs.
Nach meinem Upgrade konnte ich leider Permalinks zu Artikeln nicht mehr erreichen (das offizielle Theme gibt eine 404er-Fehlermeldung), die Übersicht samt Paging und Permalinks zu Kategorien und Tags sowie “Seiten” waren erreichbar.
Zur Erklärung: ich verwendete keine mod_rewrite-Permalinks, sondern die PATHINFO-Permalinks im Stil
http://www.kallensee.info/journal/index.php/2008/08/22/test-beitrag
Nur bei diesen Permalinks, in denen die index.php vorkommt, tritt auch der Fehler auf.
Das Problem ist auch bereits bekannt. Ein Workaround wäre, in der Konfiguration unter Permalinks für Tags und Kategorien eine “Basis” einzutragen (ganz unten). Dadurch ändern sich allerdings Links zu Tags und Kategorien.
Ich habe den Bug gleich dazu genutzt, meine Permalinks auf die mod_rewrite-Variante umzustellen und von unnötigen Informationen zu bereinigen. Der SEO Blog brachte mich auf den Gedanken, dass die Datumsangabe in der URL ziemlich unnötig ist.
Das neue Permalink-Schema für Artikel ist deutlich schlanker als zuvor:
http://www.kallensee.info/journal/test-beitrag
Jetzt ist es natürlich an der Zeit, sich um die alten URLs zu kümmern. Alle Links – bis auf die Beitrags-Permalinks – werden von WordPress automatisch vom alten Format auf die neue Link-Struktur umgeleitet – Tags, Archive usw. Wichtig sind natürlich aber vor allem die Beitrags-Permalinks – die ja bei Google und anderen Blogs noch im alten Permalink-Format vorliegen. Damit die nicht auf einer Fehlerseite landen, habe ich in meine Apache-Konfiguration für den entsprechenden Host eine RedirectMatch-Direktive eingefügt:
RedirectMatch permanent ^/journal/index.php/200(6|7|8)/[0-9][0-9]/[0-9][0-9]/([A-Za-z0-9-/#]*) http://www.kallensee.info/journal/$2
Diese Direktive leitet alle Anfragen auf Beiträge des alten URL-Formats auf das neue Format um. Im Test werden aber alle URL’s korrekt umgeleitet. Wichtig: durch den Parameter “permanent” erfolgt die Weiterleitung mit dem HTTP-Statuscode 301, auf Deutsch: dem Anfragenden wird neben der neuen Adresse mitgeteilt, dass die Seite permanent “verzogen” ist. Für Suchmaschinen äußerst wichtig zu wissen.
Für Verbesserungsvorschläge bin ich jederzeit offen – zumindest optimieren kann man den regulären Ausdruck mit Sicherheit…