2016-07-29 13 views
0

Ich habe eine große WordPress-Site geerbt: Ich habe mir die Wordfence-Live-Logs angesehen, als ich festgestellt habe, dass Benutzer keine bestimmte PHP-Seite geladen haben. Ich untersuchte und über einen FTP-Client fand ich heraus, dass die Datei dort war, wo sie sein sollte. Ich einige Netzwerk-Tool verwendet (in Chrome, Opera und Firefox) und auch hier fand ich, dass Datei zurückkehrte einen 404.Neuschreiben von RewriteRule, um eine bestimmte PHP-Datei in den Pfad zurückzugeben

So fand ich in der Wurzel der Website eine kurze .htaccess-Datei mit dieser Zeile:

RewriteRule ^wp-content/(.*)\.php$ [R=404,L] 

Ich habe dies kommentiert und die Website neu geladen: kein Fehler mehr. Ich muss sagen, der Fehler scheint der Website scheinbar nichts Seltsames anzutun. Aber ich möchte es beseitigen.

Ich nehme an, diese Regel soll vermeiden, dass jemand eine direkte HTTP-Anfrage an diese und jede andere PHP-Datei in diesem Verzeichnis machen kann: In diesem Fall nehme ich an, dass diese Datei von einem Include aufgerufen wird, nicht direkt , denn in WordFence sehe ich einen Fehler, nachdem ein Benutzer direkt auf andere Seiten zugreift, nicht auf diese.

Wie auch immer, ich möchte diese Regel neu schreiben, so dass es gleich bleibt wie jetzt, außer für diese PHP-Seite. Die PHP-Seite ist im Pfad des Themas:

wp-content/themes/THEME/core/css/customized.css.php

Ist das möglich? Jede Hilfe ist willkommen

Antwort

3

Wenn Sie diese spezielle PHP-Datei aus dem RewriteRule ausschließen möchten, können Sie eine negative Vorschau auf die regex hinzufügen, etwa so:

RewriteRule ^wp-content/(?!themes/.*/core/css/customized\.css\.php$)(.*)\.php$ [R=404,L]