Superschnelle .htaccess-Redirects bei neuen Permalinks in WordPress

Als ich meine Domain und meine Permalinkstruktur nach längerer Zeit geändert habe, war mir besonders wichtig, dass alle alten und nunmehr falschen URLs an die korrekten neuen weitergeleitet werden. Bei einer Änderung in allen Ebenen (ich habe die Hauptdomain geändert, die Kategorie-URLs, die Schlagwort-URLs und die Permalinkstruktur der Beiträge) sollten die Weiterleitungen (Redirects) suchmaschinenfreundlich, schnell und so früh als möglich stattfinden. Diese drei Bedingungen führen unweigerlich in die Abgründe der .htaccess. Und diese habe ich hier kommentiert aufgelistet.

Options All -Indexes

Verhindert das Auslesen der Ordneransicht.

RedirectMatch 301 ^/category/(.*) https://mkln.org/kategorie/$1
RedirectMatch 301 ^/tag/(.*) https://mkln.org/schlagwort/$1

Da ich die Kategorie- und die Schlagwort-Basis geändert habe (aus „category“ wurde „kategorie“ und aus „tag“ wurde „schlagwort“) müssen alle alten Links auf die neuen umgeleitet werden ohne dass dabei die eigentlich gesuchte Kategorie oder das Schlagwort verloren gehen. Deshalb fangen wir das mit (.*) ab und geben es mit $1 in der neuen URL wieder aus.

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})(/([0-9]{2}))?/(.*)$ https://mkln.org/$4

Bevor ich mich für meine jetzige Permalinkstruktur – /beitragstitel/ – entschieden habe, waren meine Permalinks sehr lange entweder im Format /yyyy/mm/dd/beitragstitel/ (WordPress-Standard) oder im Format /yyyy/mm/beitragstitel (Blogger-Standard) angegeben. Beide Formate fange ich mit der obigen Zeile ab und wandle sie in die neue Struktur um.

Redirect 301 /kontakt https://mkln.org/ueber
Redirect 301 /kolophon https://mkln.org/ueber

Es gab in alten Versionen der Seite immer wieder eigene Kontakt- oder Kolophon-Seiten. In der neuen habe ich alles in eine Über-Seite gepackt. Daher können die beiden Links zu Kontakt und zu Kolophon umgeleitet werden. (Notiz am Rande: Wenn ich in WordPress die ehemalige Kontakt-Seite zur neuen Über-Seite gemacht hätte, bräuchte ich nur noch die Links zu anderen Seiten auf die Über-Seite umzuleiten, da WordPress Permalinks, die in WordPress getauscht werden, automatisch an die neuen Permalinks weiterleitet.)

RewriteCond %{HTTP_HOST} !^mkln.org
RewriteRule (.*) https://mkln.org/$1 [R=301,L]

Die letzte und wichtigste Umleitung in der .htaccess prüft, ob der Aufruf meiner Seite überhaupt mit der richtigen Domain erfolgt. Besonders nach meinem Domainwechsel erfolgten alle Aufrufe nicht an mkln.org. Dieses „Nicht an mkln.org“ stellt die erste Zeile als Bedingung fest. Wenn diese erfüllt ist, greift die zweite Zeile und leitet den Aufruf an mkln.org um.

Diese Regel kann nicht nur genutzt werden, um die Hauptdomain (mkln.org) umzuleiten, sondern auch, um Subdomains umzuleiten, zuzuschalten oder zu entfernen. Ruft jemand meine Seite über den Link www.mkln.org auf, so entfernt die Regel wie oben angegeben das www (und jede andere Subdomain). Bräuchte ich aber das www, weil ich ein Relikt aus den 90er Jahren bin und meine Seiten immer auf einer Subdomain darstelle, so könnte ich es über diese Regel hinzufügen, indem ich in beiden Zeilen das mkln.org durch www.mkln.org ersetzte.

Das war’s. Das waren meine Ergänzungen zur .htaccess1. Sie werden ganz am Anfang der Datei ausgegeben, da sie die wesentlichsten Einstellungen regeln (nämlich die richtige Domain!). Erst danach folgen Regeln meines Caching-Plugins und ganz am Ende die paar Zeilen, die WordPress benötigt. Verbesserungsvorschläge werden gerne angenommen, andernfalls: Nichts zu danken!


  1. Sollten diese Regeln nicht greifen, ist wahrscheinlich mod_rewrite nicht aktiviert. In so einem Fall sucht man sich besser einen neuen und zuverlässigen Hoster oder man aktiviert mod_rewrite. In 99,9% der Fälle ist das aber nicht nötig. 
Do NOT follow this link or you will be banned from the site!