Ich verwende Apache 2.4 und laut der Dokumentation, die ich auf der Apache-Website gefunden habe (http://httpd.apache.org/docs/current/sections.html), unter dem Abschnitt „So werden die Abschnitte zusammengeführt“ heißt es, dass die Konfigurationen des virtuellen Hosts die Serverkonfigurationen überschreiben sollen.
Ich habe einen regulären Ausdruck für die Filesmatch-Serverkonfiguration, um den öffentlichen Zugriff auf wichtige WordPress-Dateien mithilfe der Logik „Reihenfolge verweigern, zulassen“ zu verhindern:
<FilesMatch "wp-login\.php|xmlrpc\.php|admin-ajax\.php">
Include conf/global_acl.conf
</FilesMatch>
Dann habe ich unter meinem virtuellen Host ein weiteres Filesmatch, um den spezifischen Zugriff auf bestimmte Dateien zu erlauben und so ein WordPress-Plugin zu aktivieren:
<FilesMatch "^(xmlrpc|wp-trackback)\.php$">
Order Deny,Allow
Allow from wordpress.com
Allow from 123.123.123.123
</FilesMatch>
Mein Ziel ist, dass der Serverkonfigurationsprozess vom virtuellen Host übernommen wird und die zusätzlichen Allow-Anweisungen dann vom virtuellen Host analysiert werden. Das scheint nicht zu funktionieren. Wenn ich die Serverebene ändere, indem ich die XMLRPC-Datei entferne, funktioniert der virtuelle Host.
BEARBEITEN
Um Verwirrung zu vermeiden: Mein Problem ist, dass mir unter dem virtuellen Host der Zugriff verweigert wird, obwohl ich die IP 123.123.123.123 verwende. Ich erwarte, dass die Whitelist-Einträge aus der Serverkonfiguration vom virtuellen Host übernommen werden. Dann habe ich zusätzliche Whitelist-Zulassungen in der Virtualhost-Konfiguration. Ich habe oben in meiner Serverkonfiguration ein DENY FROM ALL.
Irgendwelche Ideen, was los ist? Vielen Dank im Voraus!
Antwort1
Eine Änderung in 2.4 war der Ersatz der SyntaxErlauben vondurch das neueErfordern alle gewährtenund ähnliches. SieheApache-AktualisierungsdokumentAbschnittZugangskontrolle.
Es gibt ein Kompatibilitätsmodul, mit dem Sie Änderungen vermeiden können. Wenn Sie es verwenden und Order Deny,Allow
dann keine Anweisungen haben Deny
, werden alle Zugriffe zugelassen (sieheApache-Kompatibilität: Reihenfolge).
Verwenden oder fügen Sie also Order Allow,Deny
ein hinzu Deny from all
.