403 Verboten auf einer WordPress-Seite
Die Anfrage wurde verstanden und abgelehnt. Die Ablehnung kam vom Webserver, einer Firewall oder einer Berechtigungsregel - WordPress ist selten involviert.
403 Forbidden — You don't have permission to access this resource.
Beachten Sie, ob die gesamte Site 403s oder nur einige URLs, und ob es folgt Ihnen oder nur ein Netzwerk betrifft. Eine Site-weite 403 ist fast immer Dateiberechtigungen oder eine Umschreibregel; eine, die einer einzelnen Person folgt, ist ein IP-Block.
Die wahrscheinlichsten Ursachen zuerst.
Gehen Sie die Liste der Reihe nach durch. Prüfen Sie jede Ursache, bevor Sie etwas ändern, da die Lösungen unterschiedlich sind und eine Vermutung mehr Zeit kostet als ein Befehl.
| Ursache | So prüfen Sie es | Lösung |
|---|---|---|
| Datei- oder Verzeichnisberechtigungen, die der Webserver nicht lesen kann | Der Fehler ist standortweit und konstant. Verzeichnisse sollten durchführbar sein und Dateien sollten vom Benutzer des Webservers lesbar sein; alles einschränkende erzeugt genau das. | Legen Sie Verzeichnisse auf 755 und Dateien auf 644 fest, die im Besitz des Benutzers PHP läuft als. Eine Wiederherstellung von einem Backup, das auf einem anderen Host aufgenommen wurde, ist der übliche Grund, warum sie drifteten. |
| Ein Sicherheits-Plugin hat Ihre Adresse blockiert | Andere Leute können die Seite normal nutzen und ein anderes Netzwerk funktioniert auch für Sie. Das Protokoll des Plugins zeichnet den Block mit Ihrer Adresse und einem Grund auf. | Löschen Sie den Block aus der eigenen Liste des Plugins und erhöhen Sie dann den Schwellenwert, der ihn ausgelöst hat. Wiederholte fehlgeschlagene Anmeldungen sind der häufigste Auslöser. |
| Eine Rewrite- oder Access-Regel verneint den Pfad | Nur bestimmte URLs scheitern - wp-login.php, wp-admin, xmlrpc.php - während der Rest der Website in Ordnung ist. | Die Deny-Regel finden Sie in der Serverkonfiguration oder .htaccess. Härtende Snippets, die aus einem Tutorial kopiert werden, sind die übliche Quelle, und sie beschränken oft mehr als beabsichtigt. |
| Die Indexdatei fehlt oder ist nicht aufgeführt | Eine Verzeichnis-URL 403s, bei der eine Datei-URL im selben Verzeichnis funktioniert. Der Server weigert sich, ein Verzeichnis aufzulisten, das nichts als Standard hat. | Stellen Sie die fehlende Indexdatei wieder her oder bestätigen Sie die Root-Punkte des Dokuments, wo Sie es für richtig halten. |
Schritt für Schritt zur Lösung.
Die Befehle setzen WP-CLI und Shell-Zugriff voraus. Jeder Schritt erklärt, was er tut, damit Sie ihn bei Bedarf im Dashboard oder per SFTP ausführen können.
Bestimmen Sie die Form des Versagens
Site-wide oder ein Pfad; jeder oder nur Sie. Diese beiden Antworten entfernen den größten Teil der Liste, bevor ein Befehl ausgeführt wird.
curl -sS -o /dev/null -w '%{http_code}\n' https://example.com/ curl -sS -o /dev/null -w '%{http_code}\n' https://example.com/wp-login.phpLesen Sie die eigene Erklärung des Servers
Ein 403 wird fast immer mit einem Grund protokolliert, und der Grund benennt die Schicht, die abgelehnt hat.
tail -n 50 /var/log/nginx/error.log
Reset Ownership und Berechtigungen
Verzeichnisse, die durchführbar sind, Dateien, die lesbar sind, beides im Besitz des PHP-Benutzers.
find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \;Nehmen Sie .htaccess aus der Gleichung
Benennen Sie es um, anstatt es zu bearbeiten, damit Sie es unverändert zurücksetzen können. WordPress schreibt auf Anfrage ein neues neu.
mv .htaccess .htaccess.bak wp rewrite flush --hard
Bestätigen Sie aus einem anderen Netzwerk
Wenn die Website von anderswo aus antwortet, während sie Sie immer noch ablehnt, handelt es sich um einen Adressblock und keine Änderung der Berechtigung hilft.
curl -sS -o /dev/null -w '%{http_code}\n' --interface eth1 https://example.com/
Darum kümmert sich die Plattform.
Dateibesitz wird auf den eigenen Benutzer der Website bei der Bereitstellung eingestellt und so von der Plattform gehalten, so dass die Berechtigungsdrift, die einer manuellen Wiederherstellung folgt, hier nicht stattfindet. Blockieren erfolgt am Rand und nicht durch ein Plugin in WordPress, was bedeutet, dass eine blockierte Adresse niemals PHP erreicht und ebenso nützlich kann ein Administrator, der sich selbst aussperrt, ohne Datenbankzugriff zurückgelassen werden.
Häufige Fragen.
Warum können alle anderen die Website nutzen, während ich nicht kann?
Sollte ich Berechtigungen auf 777 setzen, um es zu testen?
Die 403 erscheint nur auf wp-admin. Was bedeutet das?
Wie unterscheidet sich ein 403 von einem 401?
War es keiner davon?
Diese Fehler können im Browser ähnlich aussehen.