Mit diesem einfachen Trick löst Du fast alle Permalink-Probleme
Mit diesem einfachen Trick löst Du fast alle Permalink-Probleme

Mit diesem einfachen Trick löst Du fast alle Permalink-Probleme

Es ist ganz plötzlich passiert. Auf einmal liefern alle Seiten deiner WordPress-Website einen Fehler 404 „Seite nicht gefunden“. Was tun? Die Lösung ist in den meisten Fällen denkbar einfach.

Es gibt einen ganz einfachen Trick, mit dem sich dieses Problem in den meisten Fällen umgehend beheben lässt. Bevor ich Dir diesen #trick verrate, möchte ich ganz kurz die häufigste Ursache für das Problem erklären.

Wie kann es passieren, dass Permalinks in WordPress nicht mehr funktionieren?

Dass einige oder sämtliche Permalinks plötzlich nicht mehr funktionieren kann mehrere Ursachen haben. Wenn Du Deine Website gerade auf einen anderen Server übersiedelt oder auf HTTPS umgestellt hast, dann ist die Wahrscheinlichkeit recht hoch, dass dabei etwas schiefgegangen ist.

In so einem Fall gilt es, den Fehler zu finden. Aber selbst wenn Du keine größere Umstellung vorgenommen hast, kann das Problem plötzlich auftreten und mit Ausnahme der Startseite keine einzige Seite Deiner WordPress-Website mehr erreichbar sein. Oder es funktionieren nur einige Adressen nicht.

Das kann verschiedene Gründe haben. In diesem Artikel gehe ich auf die mit Abstand häufigste Ursache und deren Lösung ein. Nach meiner Erfahrung gibt es eine einzelne Ursache, die für einen Großteil dieser Fälle verantwortlich ist. Mit einem simplen Trick lässt sich das Problem wahrscheinlich in mehr als 90% aller Fälle sofort beheben.

Was sind Rewrite Rules?

WordPress muss aus der aufgerufenen URL ermitteln, welche Daten aus der Datenbank geladen und angezeigt werden müssen. Das ist eine ziemlich komplexe Aufgabe.

Die URL kann zu einer Seite, einem Beitrag oder der Anhang-Seite einer Medien-Datei gehören. Das ist noch relativ einfach. Es kann sich aber auch um eine Archiv-URL handeln. Beispiele dafür sind etwa alle Beiträge eines Monats oder einer Kategorie, alle Beiträge zu einem Schlagwort oder alle Beiträge eines Autors.

Die Analyse der aufgerufenen Adresse erfolgt unter Verwendung sogenannter Rewrite Rules. Der Begriff ist leider nicht eindeutig. Auch der Webserver selbst verwendet solche Rewrite Rules. Diese sind hier jedoch nicht gemeint.

WordPress arbeitet intern mit eigenen Rewrite Rules, die von denen des Webservers unabhängig und in der Datenbank gespeichert sind. In diesem Artikel geht es ausschließlich um diese WordPress Rewrite Rules.

Die Basis für dieses Regelwerk bilden die Permalink-Einstellungen.

Die WordPress Permalink-Einstellungen

Aus diesen Einstellungen werden die Rewrite Rules erzeugt. Diese sind wie bereits erwähnt ziemlich komplex. Die Einstellungen aus dem vorherigen Screenshot beispielsweise ergeben einen Satz aus 90 Regeln!

Bei Interesse kannst Du das Plugin Rewrite Rules Inspector installieren. Mit diesem #plugin kannst Du Dir die in der Datenbank gespeicherten Rewrite Rules anzeigen lassen.

Plugins können weitere eigene Rewrite Rules hinzufügen. Ein Shop-Plugin zum Beispiel wird ziemlich wahrscheinlich eine ganze Anzahl an Regeln hinzufügen.

Was ist das häufigste Problem mit den Rewrite Rules?

Das System ist ziemlich genial und es sollte damit eigentlich kein Problem geben. Sollte. Erfahrungsgemäß kommen Probleme damit aber gar nicht so selten vor.

Warum dem so ist, kann ich nicht beurteilen. Wenn alle Plugins, die eigene Rewrite Rules definieren, fehlerfrei programmiert werden, dürfte es eigentlich nie Probleme geben. Fakt ist aber, dass dem so ist.

Die Generierung der Rewrite Rules ist ein relativ aufwändiger Prozess. Dieses Regelwerk jedesmal aus den Permalink-Einstellungen sowie evtl. durch Plugins zusätzlich hinzugefügten Regeln zu erstellen, wäre in Bezug auf die #performance der Website eine schlechte Idee.

Deshalb werden die Regeln auch nur bei Bedarf neu erstellt und in der Datenbank gespeichert. Ansonsten greift WordPress auf die gespeicherten Rewrite Rules zurück.

Wenn durch ein Plugin eigene Regeln hinzugefügt werden sollen, kann man sich das als zweistufigen Prozess vorstellen. Im ersten Schritt müssen WordPress die Regeln bekanntgegeben werden. Im zweiten Schritt müssen die in der Datenbank gespeicherten Rewrite Rules neu generiert werden.

Genau hier liegt das Problem. Wenn dieser zweite Schritt nicht erfolgt, verwendet WordPress nicht aktuelle Rewrite Rules. Möglicherweise funktionieren dadurch nur die URLs des jeweiligen Plugins nicht. Es kann aber auch sein, dass einige andere URLs nicht mehr funktionieren. Häufig funktioniert sogar mit Ausnahme der Startseite überhaupt nichts mehr.

Tatsächlich ist eine fehlende Aktualisierung der Rewrite Rules die mit großem Abstand häufigste Ursache für nicht mehr funktionierende Permalinks.

Wie lässt sich das Problem mit nicht aktuellen Rewrite Rules lösen?

Um dieses Problem zu lösen, müssen also lediglich die gespeicherten Regeln aktualisiert werden. Dann funktionieren sämtliche URLs wieder.

Um einen sogenannten Flush der Rewrite Rules anzustoßen ist zum Glück kein Eingriff in den Code erforderlich. Die Aktualisierung muss nur einmal erfolgen. Es sind keine Änderungen erforderlich.

Damit kommen wir zum versprochenen Trick, mit dem Du das Problem nicht aktueller Rewrite Rules schnell und einfach lösen kannst.

Mit diesem simplen Trick kannst Du die WordPress Rewrite Rules neu generieren

Um die in der Datenbank gespeicherten Regeln neu zu generieren ist tatsächlich nur ein einziger Klick nötig. Alles, was Du tun musst ist, die Permalink-Einstellungen zu speichern.

Die WordPress Rewrite Rules neu generieren

Es ist nicht nötig, irgend etwas zu ändern. Beim Klick auf „Änderungen speichern“ generiert WordPress die Rewrite Rules auf Basis der Einstellungen und unter Berücksichtigung aller evtl. durch Plugins hinzugefügten eigenen Regeln neu.

Es kling beinahe zu schön, um wahr zu sein – aber tatsächlich lässt sich diese häufigste Ursache für Permalink-Probleme in WordPress mit nur einem Klick beheben.

Was ist, wenn dieser Trick nicht hilft?

Wie bereits erwähnt gibt es noch andere mögliche Ursachen. Auf diese gehe ich aber im Rahmen dieses Artikels nicht näher ein. Ganz kurz möchte ich die Möglichkeiten zur Behebung trotzdem anführen.

Das Aktualisieren der Rewrite Rules sollte immer der erste Schritt sein. Besteht das Problem weiterhin, deaktiviere alle Plugins.

Ist das Problem dann verschwunden, ist die Ursache entweder ein fehlerhaftes Plugin oder eine Kombination von Plugins, deren Rewrite Rules sich in die Quere kommen. Aktiviere die Plugins schrittweise wieder um den oder die Verursacher zu finden.

Besteht das Problem immer noch, obwohl alle Plugins deaktiviert sind, wechsle zu einem Standard-Theme von WordPress. Ist das Problem dann verschwunden, ist die Ursache im Theme zu suchen.

Wenn das Problem aber immer noch besteht, liegt es nicht an WordPress, sondern an den Rewrite Rules des Webservers. Diese sind in der Datei .htaccess gespeichert. Möglicherweise wurde die Datei durch ein Plugin verändert und dabei beschädigt.

In diesem Fall besteht die einfachste Lösung darin, die Datei .htaccess per FTP zu löschen und die Permalink-Einstellungen erneut zu speichern. Dadurch legt WordPress eine standardmäßige .htaccess an. Dabei sollten alle Plugins deaktiviert sein, um sicherzustellen, dass die Datei nicht wieder gleich durch ein Plugin beschädigt wird.

Affiliatelinks

Bei Links, die mit einem  gekennzeichnet sind, handelt es sich um sogenannte Affiliate- oder Provisions-Links. Wenn du auf so einen Link klickst und über diesen Link einkaufst, dann erhalte ich für Deinen Einkauf eine Provision vom jeweiligen Anbieter. Für dich verändert sich der Preis dadurch selbstverständlich nicht. Diese Links tragen dazu bei, einen Teil der Kosten, die mit dem Betrieb dieser Website verbunden sind, zu decken.