ALL SYSTEMS OPERATIONALUPTIME 99.97%FLEET 18/18IN-MUM · US-LAX · EU-FSN EST. 2003 · +91 11 4998 4038

KENNTNISSE · SCHRIFTSTÜCKE & PROGRAMME

WordPress Admin hat 403 auf load-styles.php / load-scripts.php gebrochen

Letzte Aktualisierung 2025-12-10

WordPress wp-admin 403 auf load-styles.php / load-scripts.php (Wordfence WAF / auto prepend file)

Zusammenfassung

Nach einem WordPress- oder Plugin-Update sehen einige Websites plötzlich einen defekten WP-Admin-Bildschirm:

  • Login funktioniert, aber das Admin-Dashboard sieht unstiled, leer oder halb geladen aus.
  • Browser DevTools → Network shows 403 Verboten für:
    • wp-admin/load-styles.php
    • wp-admin/load-scripts.php
  • Deaktivieren von Plugins aus wp-admin oder sogar Umbenennen wp-content/plugins, tut nicht Behebe die 403.

In vielen Fällen ist die Ursache Wordfence Web Application Firewall (WAF) noch geladen via auto_prepend_file in .htaccess und/oder .user.iniAuch wenn das Plugin deaktiviert ist.

 

Symptome

  • WordPress Admin lädt teilweise oder ohne CSS/JS.
  • In your browser’s DevTools → Network tab:
    • wp-admin/load-styles.php und/oder wp-admin/load-scripts.php Schauer 403 Verboten.
  • Apache Error Log zeigt ähnliche Zeilen wie:
    [authz_core:error] AH01630: client denied by server configuration: /home/USER/public_html/wp-admin/load-styles.php
    [authz_core:error] AH01630: client denied by server configuration: /home/USER/public_html/wp-admin/load-scripts.php
  • Umbenennung wp-content/plugins oder das Deaktivieren von Plugins aus dem Dashboard nicht Beheben Sie den Fehler.

 

Wurzelursache

Wenn Wordfence WAF aktiviert ist Erweiterter Schutz Modus, es ist nicht nur ein normales WordPress-Plugin. Es injiziert sich auch in PHP über auto_prepend_file.

Genauer gesagt, Wordfence:

  1. Fügt ein auto_prepend_file Direktive zu Ihrer PHP-Konfiguration über:
    • .htaccess (Apache)
    • .user.ini (Pro-Directory PHP-Einstellungen)
  2. Zeigt diese Direktive auf eine Bootstrap-Datei wie:
    # In .htaccess
    php_value auto_prepend_file /home/USER/public_html/wordfence-waf.php
    
    ; In .user.ini
    auto_prepend_file = "/home/USER/public_html/wordfence-waf.php"
    

Diese Kräfte Jede PHP-Anfrage (Frontend, wp-admin, AJAX, Cron, etc.) zum Laden wordfence-waf.php vor WordPress. Selbst wenn Sie das Wordfence-Plugin deaktivieren oder entfernen, kann der WAF-Bootstrap dennoch:

  • Block spezifische Pfade (z.B. load-styles.php, load-scripts.php, wp-cron.php), or
  • Fehlschlagen aufgrund veralteten / nicht übereinstimmenden Codes nach einem WordPress- oder PHP-Upgrade.

Da dies auf PHP / Apache-Ebene läuft, Einfach das Plugin in wp-admin deaktivieren reicht nicht aus.

 

Wie man It’s Wordfence / auto prepend file bestätigt

1. Überprüfen Sie Apache / PHP-Fehlerprotokolle

Schauen Sie in Ihrem virtuellen Host oder globalen Apache-Fehlerprotokoll nach Zeilen wie:

[authz_core:error] AH01630: client denied by server configuration: /home/USER/public_html/wp-admin/load-styles.php
[authz_core:error] AH01630: client denied by server configuration: /home/USER/public_html/wp-admin/load-scripts.php

Wenn Sie 403s auf diesen WordPress-Core-Endpunkten sehen und das normale Deaktivieren des Plugins nicht hilft, vermuten Sie WAF / auto prepend file.


2. Überprüfung .user.ini in der Wurzel des Dokuments

  1. Via SSH or file manager, go to your site root (for example /home/USER/public_html).
  2. Offen .user.ini und suchen Sie nach einer Zeile ähnlich wie:
    auto_prepend_file = "/home/USER/public_html/wordfence-waf.php"


3. Kontrolle .htaccess für Wordfence WAF

  1. Im selben Verzeichnis, offen .htaccess.
  2. Suchen Sie nach einem Wordfence WAF-Block, zum Beispiel:
    # Wordfence WAF
    # <IfModule mod_php7.c>
    php_value auto_prepend_file /home/USER/public_html/wordfence-waf.php
    # </IfModule>

Wenn diese vorhanden sind, wird Wordfence WAF weiterhin in jede PHP-Anfrage eingespeist, auch wenn das Plugin deaktiviert ist.

&nbsp;

Fix: Wordfence WAF richtig stilllegen

Warnung: Tun Sie dies nur, wenn Sie Wordfence WAF deaktivieren möchten. Wenn Sie Wordfence weiterhin möchten, verwenden Sie eine eigene Benutzeroberfläche, um Extended Protection neu zu konfigurieren.


Step&nbsp;1: Wordfence Plugin deaktivieren (wenn möglich)

  1. Melden Sie sich bei wp-admin an.
  2. Gehen Sie zu Plugins &rarr; Installierte Plugins.
  3. Deaktivieren Wordfence Security.

Wenn wp-admin vollständig kaputt ist, können Sie diesen Schritt überspringen und direkt zum Bearbeiten von Dateien gehen.

Step&nbsp;2: Entfernen auto_prepend_file von .user.ini

  1. In Ihrem WordPress-Dokument root, offen .user.ini.
  2. Finden Sie die Wordfence-Linie:
    auto_prepend_file = "/home/USER/public_html/wordfence-waf.php"
  3. Kommentieren Sie es oder entfernen Sie es , beispielsweise:
    ; auto_prepend_file = "/home/USER/public_html/wordfence-waf.php"
  4. Speichern Sie die Datei.

Step&nbsp;3: Entfernen auto_prepend_file von .htaccess

  1. Im selben Verzeichnis, offen .htaccess.
  2. Suchen Sie nach dem Wordfence WAF-Block, z. B.:
    # Wordfence WAF
    <IfModule mod_php7.c>
        php_value auto_prepend_file /home/USER/public_html/wordfence-waf.php
    </IfModule>
  3. Kommentieren Sie es oder entfernen Sie es:
    # Wordfence WAF disabled
    # <IfModule mod_php7.c>
    #     php_value auto_prepend_file /home/USER/public_html/wordfence-waf.php
    # </IfModule>
  4. Speichern Sie die Datei.

Step&nbsp;4: Klarer Opcode-Cache / Neustart von PHP (optional, aber empfohlen)

  • Wenn Sie PHP-FPM / LSAPI / FastCGI verwenden, starten Sie PHP-FPM oder LiteSpeed / Apache neu.
  • Alternativ bitten Sie Ihren Hosting-Provider, PHP-Opcache für dieses Konto zu löschen.

Step&nbsp;5: Test wp-admin

  1. Offen /wp-admin/ In Ihrem Browser.
  2. Open DevTools → Network, then reload the page.
  3. Prüfen:
    • wp-admin/load-styles.php Rückgabe 200 OK.
    • wp-admin/load-scripts.php Rückgabe 200 OK.
    • Die Admin-Schnittstelle sieht wieder normal aus (CSS/JS geladen).

If you previously added any temporary overrides (for example a wp-admin/.htaccess that unconditionally allowed those files), you can remove them once everything works normally.

&nbsp;

Optional: Bereinigen von Wordfence-Dateien

Wenn Sie mit Wordfence fertig sind, können Sie auch:

  • Löschen oder Umbenennen:
    • wp-content/plugins/wordfence/
    • wp-content/wflogs/ (Logverzeichnis)
  • Abnehmen wordfence-waf.php aus Ihrem Dokument root, wenn es nirgendwo mehr referenziert wird.

Vermeidung zukünftiger Probleme

  • Beachten Sie, dass Sicherheits-Plugins mit WAF / &ldquo; Extended Protection &rdquo; ändern können:
    • .htaccess
    • .user.ini
    • Globales PHP Verhalten über auto_prepend_file
  • Deaktivieren des Plugins aus dem Dashboard nicht Diese Low-Level-Hooks werden automatisch entfernt.
  • Wenn Sie seltsame 403s oder &ldquo; Client sehen, die durch Serverkonfiguration &rdquo; auf WordPress-Kerndateien wie load-styles.php, load-scripts.php, oder wp-cron.php, immer überprüfen Sie:
    • auto_prepend_file Linien in .user.ini und .htaccess.
    • Reste WAF-Bootstrap-Dateien wie wordfence-waf.php.

Zusammenfassung

Ausgabe: WordPress Admin ist kaputt load-styles.php / load-scripts.php 403 zurückgeben, auch nach Deaktivierung von Plugins.

Ursache: Wordfence WAF noch injiziert via auto_prepend_file in .htaccess / .user.ini, Beladung wordfence-waf.php bei jeder Anforderung und Sperrung dieser Endpunkte.

Fix:

  1. Wordfence Plugin deaktivieren (wenn möglich).
  2. Abnehmen auto_prepend_file Verweise auf wordfence-waf.php von .htaccess und .user.ini.
  3. PHP / Apache neu laden und wp-admin & mdash erneut testen; die 403s auf load-styles.php / load-scripts.php sollte verschwinden.

← Alle Knowledgebase Artikel

Sagen Sie uns, was aufbleiben muss.

A short conversation with an engineer. No quote-bot, no callback queue. We'll tell you honestly if we're not the right fit.