Назад | Перейти на главную страницу

Виртуальный хост Apache не разрешает переопределение сервера

Я использую 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.