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.
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.
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.
Hallo,
ich habe seit 6 Wochen (und aus dem nichts heraus) das Problem, dass meine Webpräsenz bis auf die Startseite nur 404-Errors liefert. Wiederherstellung des eigenen Backups bringt keine Besserung, ich muss über den Webhoster immer ein kostenpflichtiges Restore beauftragen. Die .htaccess ist korrekt, den Permalink-Trick habe ich gestern versucht, aber dabei ging die gerade neu aufgebaute Seite wieder den Bach herunter. Was kann denn noch eine Ursache sein? Die Absturz-Serie begann mit dem Update des Yoast-Plugins, trat danach aber auch durch andere Interaktionen auf.
Bin für jeden Tipp dankbar.
Gruß von Regina
Hallo Regina,
eine Ferndiagnose ist leider nicht möglich. Nur aufgrund Deiner Beschreibung habe ich leider keine Idee. Ich würde aber nicht ausschließen, dass Du Dir auf Deiner Website Schadcode eingefangen hast. Überprüfe Deine Website einmal mit einem Malware Scanner wie zum Beispiel Wordfence. Möglicherweise ist auch das Backup schon infiziert und deshalb tritt das Phänomen immer wieder auf. Kann aber natürlich auch etwas ganz anderes sein. Gibt es einen bestimmten Rhythmus in dem das Problem auftritt? Vielleicht findet sich darüber ein Hinweis. Wenn ein Plugin ein Problem verursacht, ist es in der Regel relativ einfach, indem man alle Plugins deaktiviert und schrittweise aktiviert um zu sehen, bei welchem der Fehler auftritt. Nachdem in Deinem Fall das Problem aber nicht sofort auftritt, ist das nicht machbar. Ist eine verzwickte Sache. Versuch als erstes mal einen Scan mit Wordfence. Vielleicht bringt das ja schon etwas.
Liebe Grüße
Peter
Hallo Peter,
ganz herzlichen Dank für die schnelle und hilfreiche Antwort.
Wordfence (free Version) ist bei uns ohnehin aktiv und ein aktueller Scan ergab eigentlich keine Auffälligkeiten, allerdings bekomme ich mehrmals täglich Meldungen, dass das Plugin mal wieder einen falschen Login blockiert hat.
Schadsoftware würde für das diffuse Fehlerbild sprechen.
Bei Interesse, hier sind alle Screenshots des Fehlers und aktuelle Logs: https://www.dropbox.com/sh/gephegoenv0lvyl/AAAX84xOKlHPY90j5ui6usJ4a?dl=0
Beste Grüße,
Regina
Hallo Regina,
die geblockten Login Versuche würde ich nicht überbewerten, die gibt es häufig. Wenn die Ursache so unklar ist würde ich empfehlen, auf Verdacht WordPress, alle Plugins und das Theme neu zu installieren. Dazu per FTP alle Dateien im Root-Verzeichnis von WordPress löschen sowie die Verzeichnisse wp-admin, wp-includes, wp-content/plugins und wp-content/themes. Dann alles neu von den originalen Quellen hochladen. So sollten keine evtl. mit einem Schädling befallenen Dateien mehr vorhanden sein. Sämtliche Daten in der Datenbank und die Medien-Dateien bleiben erhalten.
Liebe Grüße
Peter
Vielen Dank! Das hat mir sehr geholfen.
Freut mich, danke für Dein Feedback.
Liebe Grüße,
Peter
Der erste Trick mit den Permalinks hat gleich funktioniert. Danke!
Freut mich, danke für Dein Feedback.
Liebe Grüße,
Peter
Hallo, lese in meinem WP Admin unter Website Zusand „Der Autorisierungs-Header fehlt“
Dann kommt „Der Autorisierungs-Header stammt aus den Anwendungen von Drittanbietern, die du genehmigst. Ohne ihn können diese Anwendungen keine Verbindung zu deiner Website herstellen. Permalinks leeren“ Was bedeutet das und wie kann ich die Permalinks leeren? Muss ich unter Permalinks auch einfach nur auf Änderung Aktualieren klicken? MfG Markus
Hallo Markus,
der erste Schritt zur Fehlerbehebung ist es, die vorhandenen Permalink-Einstellungen einfach neu zu speichern (Einstellungen > Permalinks > Änderungen speichern).
Besteht das Problem weiterhin, deaktiviere alle Plugins. Ist das Problem dann verschwunden, könnte die Ursache ein fehlerhaftes Plugin sein. Reaktiviere die Plugins eins nach dem anderen, um das fehlerhafte Plugin zu identifizieren und gegebenenfalls zu ersetzen.
Viele Grüße!
Hi,
Ich habe folgendes Problem: Nachdem ich auf WP die Permalink Einstellungen geändert habe, kann ich mich nicht mehr bei WP einloggen. Ich haben die Datei htaccess über FTP schon von einem backup überschrieben, aber ohne Erfolg. Kann das Problem sein, dass meine website eigentlich eine Unterseite ist? Meine (alte) Haupt-Seite ist vidyamor.com und die neue retreat-la-palma.com. Nach der Permalink Änderung wird die Seite mit https://www.vidyamor.com/retreat-la-palma.com/
angezeigt und WP sagt: Parse error: syntax error, unexpected ‚::‘ (T_PAAMAYIM_NEKUDOTAYIM) in /www/htdocs/w00b0cd7/retreat-la-palma.com/wp-content/plugins/happy-elementor-addons-pro/widgets/product-grid/skins/classic.php on line 43
Diese Datei wurde aber in der letzten Zeit nicht verändert und kann daher nicht das Problem sein. Kann mir da jemand helfen?
Lg aus La Palma
Olay
Hallo Olay,
es klingt so, als hättest du mehrere Probleme auf einmal. Das Problem mit dem Einloggen nach der Änderung der Permalink-Einstellungen und der Parse-Fehler könnten unabhängig voneinander sein.
Zuerst würde ich vorschlagen, das Permalink-Problem zu lösen, indem du die .htaccess-Datei wieder auf die Standard-Einstellungen zurücksetzt. Falls das nicht funktioniert, kannst du auch versuchen, die Permalink-Einstellungen direkt in der Datenbank zu ändern. Dazu musst du in die Tabelle „wp_options“ gehen und die Einträge „permalink_structure“ und „rewrite_rules“ auf die Standardwerte zurücksetzen.
Das Problem mit dem Parse-Fehler könnte auf ein Problem mit dem „Happy Elementor Addons Pro“-Plugin hindeuten. Um das Problem zu beheben, kannst du versuchen, das Plugin zu deaktivieren, indem du den Plugin-Ordner umbenennst (z.B. in „happy-elementor-addons-pro-disabled“). Dadurch wird das Plugin automatisch deaktiviert und du solltest dich wieder einloggen können. Wenn das der Fall ist, kannst du das Plugin aktualisieren oder den Entwickler des Plugins um Hilfe bitten.
Viel Erfolg bei der Behebung dieser Probleme und liebe Grüße nach La Palma! 🙂