Как избежать повторения операторов управления доступом «Разрешить/Запретить» в нескольких директивах каталога в Apache2 VirtualHosts?

Как избежать повторения операторов управления доступом «Разрешить/Запретить» в нескольких директивах каталога в Apache2 VirtualHosts?

На Apache2 у меня есть VirtualHost с рядом <Directory>директив/разделов, содержащих несколько операторов управления доступом.

то есть

<Directory /foo>
    Order Deny,Allow
    Deny from all
    Allow from ...
    Allow from ...
    ...
</Directory>
...

Есть ли способ задать контроль доступа на более высоком уровне (выше <Directory>)? Или мне следует использовать макросы?

Заранее спасибо!

решение1

Если я правильно понял ваш вопрос, вы ищете способ применить набор ограничений «разрешить/запретить» к набору каталогов, которые могут не иметь общего родителя.

Вы можете поместить все директивы разрешения/запрета в отдельный файл (назовите его, скажем, /etc/httpd/conf.d/accesslist, или как-то так, как это имеет смысл в вашем дистрибутиве), а затем использовать этот Includeкаталог для включения этих правил там, где это уместно:

<Directory /some/directory>
  Include /etc/httpd/conf.d/accesslist
</Directory>

<Directory /another/directory>
  Include /etc/httpd/conf.d/accesslist
</Directory>

Но если все ваши каталоги имеют общую конфигурацию, вы можете использовать что-то вроде mod_macroсоздания повторно используемого шаблона с подстановкой переменных.

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