Должна ли Directory
директива Apache относиться к DocumentRoot или нет? Я спрашиваю в контексте VirtualHost, но это не должно иметь никакого значения.
Другими словами, это должно быть:
<VirtualHost>
DocumentRoot /var/www
<Directory /var/www>
...
или
<VirtualHost>
DocumentRoot /var/www
<Directory />
...
Оба работают. В Apache Справочник документы говорят:
Путь к каталогу - это либо полный путь к каталогу, либо строка с подстановочными знаками ...
... но затем они показывают два примера, противоречащих утверждению "полный путь".
ED: Существуют также противоречивые примеры на странице настройки производительности Apache в разделах FollowSymLinks и SymLinksIfOwnerMatch и AllowOverride .
Для интереса я посмотрел на стандартную настройку Debian для vhost и нашел это:
<VirtualHost *:80>
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
...
источник
/
, то почему Apache обслуживает/var/www
каталог?DocumentRoot
.Directory
Директива полностью отдельно, и имеет эффект говоря «применить закрытую конфигурацию в этот каталог и все подкаталоги». Более конкретные конфигурации имеют приоритет, поэтому<Directory /var/www/>
будут переопределены<Directory />
.<Directory />
из контекста VirtualHost можно переопределить параметры сервера (или другие параметры)<Directory />
? Это имеет смысл. Спасибо за помощь.