WordPress – kann keine Beiträge bearbeiten


Was mir heute passiert ist, kann man eigentlich nicht in Worte fassen. Aber eigentlich ging alles schon gestern abend los. Ich habe wie immer in meinem Calender-Plugin, mal schnell einen kleinen Beitrag geschrieben, bevor ich ihn dann wie immer im Standard-Editor zu Ende bearbeiten wollte. Ging relativ fix – bis ich “speichern” gedrückt habe. Da kam nämlich einfach mal ein großes rotes Feld mit einem Text der das schöne Wort “Checksummenfehler” enthielt. Und das wars dann. Alles weg. Eine Dreiviertelstunde umsonst gearbeitet. Meine Begeisterung könnt ihr euch vorstellen. Für den Tag war Schluß. Muss ich es halt nochmal schreiben. Morgen. Dachte ich. 🙂

So – neuer Tag, neues Glück. Mal schauen, Calender aufrufen – Beitrag bearbeiten – es erscheint– eine leere, weiße Seite. Toll. Zweiter Versuch, neuen Beitrag erstellen, im Calender etwas editieren und speichern – Checksummenfehler. Dritter Versuch – einen alten bestehenden Beitrag bearbeiten – es erscheint – eine leere, weiße Seite. Also der berühmt-berüchtigte “White Screen of Death”. Eine Seite zurück im Browserverlauf findet man sich zumindest im Dashboard wieder.

Was folgt ist klar. Die ersten Standardversuche – alles was möglich ist aktualisieren (WP, Plugins, Theme). Nix. Plugins deaktivieren. Nix.

WordPress neu installieren. (bitte immer mit Werkzeuge – Daten exportieren, vorher alles sichern). Also die Verzeichnisse wp-admin und wp-includes ersetzen (ich habe die alten vorher gnadenlos gelöscht) und alle Dateien aus dem Stammverzeichnis der neuen Version rüberkopiert. Dabei bleibt die “.htaccess” und die “wp-config.php” unberührt, weil diese im Stammverzeichniss der neuen Version, die du ja vorher auf deinem Rechner auspacken musst, nicht vorhanden sind (vorher kontrollieren). Dein Zugang zur Datenbank bleibt also unberührt und erhalten.

Ergebnis – NIX. White Screen. Was tun, sprach Zeus. Wie immer hat mich meine Intuition gerettet. Ich habe mir nämlich mal meine .htaccess angeschaut und mit der eines anderen Blogs verglichen. Meine Version sah so aus:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# BEGIN WordPress
# Die Anweisungen (Zeilen) zwischen „BEGIN WordPress“ und „END WordPress“ sind
# dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
# Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Wie man praktisch sofort erkennt wiederholt sich der erste Block in dem Teil der mit # BEGIN WordPress beginnt. Und dieser erste Block ist normalerweise natürlich nicht vorhanden. Also habe ich ihn gelöscht. Und siehe da – es funktionierte wieder.

Fragt mich bitte nicht wie dieser Block dahin gekommen ist. Aber das Löschen hat geholfen. Obwohl es eigentlich egal sein müsste, ob es zweimal drin steht. Denn die Anweisungen sind ja die Gleichen. Doch das Verrückteste kam erst noch. Man ist sich einer Lösung erst sicher, wenn man den Fehler und auch die zugehörige Lösung reproduzieren kann. Also habe ich die Änderung in der .htaccess wieder rückgängig gemacht und den Block wieder ein zweites mal integriert. Das Ergebnis – WordPress funktionierte, wie es zu erwarten war, auch mit dem doppelten Block immer noch einwandfrei.

Folge ich meiner Logik, ist die Schlußfolgerung, das es einfach nur ein Fehler im Zugriff auf die .htaccess bzw. der Speicherung der .htaccess war, der sich durch die wiederholte Speicherung aufgelöst hat. Sollte euch also ähnliches widerfahren, versucht einfach mal die .htaccess neu zu speichern.

Dieser Beitrag wurde unter Wordpress veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.