Разрешение виртуального хоста Apache НЕ переопределяет разрешение сервера

Разрешение виртуального хоста Apache НЕ переопределяет разрешение сервера

Я использую Apache 2.4 и согласно документации, которую я нашел на сайте Apache (http://httpd.apache.org/docs/current/sections.html), в разделе «Как объединяются разделы» говорится, что конфигурации виртуального хоста должны переопределять конфигурации сервера.

У меня есть регулярное выражение конфигурации сервера filesmatch для предотвращения публичного доступа к важным файлам WordPress с использованием логики «заказать запретить, разрешить»:

<FilesMatch "wp-login\.php|xmlrpc\.php|admin-ajax\.php">
   Include conf/global_acl.conf
</FilesMatch>

Затем на моем виртуальном хосте у меня есть еще один файл filesmatch, чтобы разрешить определенный доступ к определенным файлам для включения плагина WordPress:

<FilesMatch "^(xmlrpc|wp-trackback)\.php$">
   Order Deny,Allow
   Allow from wordpress.com
   Allow from 123.123.123.123
</FilesMatch>

Моя цель — сделать так, чтобы процесс разрешения конфигурации сервера наследовался виртуальным хостом, а затем дополнительные директивы разрешения анализировались виртуальным хостом. Похоже, это не работает. Если я изменю уровень сервера, удалив файл xmlrpc, виртуальный хост заработает.

РЕДАКТИРОВАТЬ

Чтобы прояснить ситуацию, моя проблема в том, что под виртуальным хостом мне отказывают, хотя я использую IP 123.123.123.123. Я ожидаю, что записи белого списка из конфигурации сервера будут унаследованы виртуальным хостом. Затем, имея дополнительные разрешения в белом списке в конфигурации виртуального хоста, у меня есть DENY FROM ALL в верхней части конфигурации моего сервера.

Есть идеи, что происходит? Спасибо заранее!

решение1

Изменение, внесенное в 2.4, заключалось в замене синтаксисаРазрешить изпо новомуТребовать все предоставленныеи подобное. Смотритедокумент по обновлению ApacheразделКонтроль доступа.

Есть модуль compat, который вы можете использовать, чтобы избежать изменений. Если вы используете его и выбираете Order Deny,Allowтогда, если у вас нет Denyоператоров, все доступы будут разрешены (см.совместимость с apache: Заказать).

Поэтому либо используйте, Order Allow,Denyлибо добавьте Deny from all.

Связанный контент