Я использую Apache 2.4, и согласно документации, которую я нашел на веб-сайте apache (http://httpd.apache.org/docs/current/sections.html) в разделе «Как объединяются разделы» говорится, что конфигурации виртуального хоста должны иметь приоритет над конфигурациями сервера.
У меня есть регулярное выражение конфигурации сервера сопоставления файлов, чтобы предотвратить публичный доступ к важным файлам wordpress, используя логику «запретить, разрешить»:
<FilesMatch "wp-login\.php|xmlrpc\.php|admin-ajax\.php">
Include conf/global_acl.conf
</FilesMatch>
Затем под моим виртуальным хостом у меня есть другое сопоставление файлов, чтобы разрешить конкретный доступ к определенным файлам, чтобы включить плагин wordpress:
<FilesMatch "^(xmlrpc|wp-trackback)\.php$">
Order Deny,Allow
Allow from wordpress.com
Allow from 123.123.123.123
</FilesMatch>
Моя цель состоит в том, чтобы разрешить процесс конфигурации сервера, унаследованный виртуальным хостом, а затем иметь дополнительные директивы allow, проанализированные виртуальным хостом. Кажется, не работает. Если я изменю уровень сервера, удалив файл xmlrpc, виртуальный хост будет работать.
РЕДАКТИРОВАТЬ
Чтобы устранить путаницу, моя проблема заключается в том, что на виртуальном хосте мне отказывают, даже если я использую IP 123.123.123.123. Я ожидаю, что записи белого списка из конфигурации сервера будут унаследованы виртуальным хостом. Затем наличие дополнительного белого списка позволяет в конфигурации виртуального хоста. У меня есть ОТКАЗ ОТ ВСЕГО в верхней части конфигурации моего сервера.
Есть идеи, что происходит? Заранее спасибо!
Изменением, внесенным в 2.4, была замена синтаксиса Разрешить от новым Требовать все предоставлено и тому подобное. Видеть документ обновления apache раздел Контроль доступа.
Есть модуль совместимости, который можно использовать, чтобы избежать изменений. Если вы его используете, и выберите Order Deny,Allow
тогда если у тебя нет Deny
операторов, будет разрешен любой доступ (см. совместимость с apache: порядок).
Так что либо используйте Order Allow,Deny
или добавить Deny from all
.