На 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
создания повторно используемого шаблона с подстановкой переменных.