Как можно запретить доступ ко всем подкаталогам данного каталога? (Позволяя вручную изменять права доступа для отдельных элементов в дереве каталогов.)
Я попытался сделать это с помощью директив <Directory(Match)>
. Конфигурация сервера (с поддержкой тысяч сайтов) выглядит следующим образом:
DocumentRoot /var/www
<Directory /var/www>
Allow from all
Deny from none
Order deny,allow
</Directory>
<Directory /var/www/*>
Deny from all
</Directory>
Запрос http://localhost/
успешно отображает /var/www/index.html
, и все запросы к каким-либо подкаталогам терпят неудачу.
Проблема заключается в том, что любой запрос к файлу в httproot сбой - то есть запрос http://localhost/index.html
приведет к 403 Forbidden
.
Директивы <Directory(Match)>
, по-видимому, соответствуют каталогам и файлам!?
Чтобы убедиться, что это правда, я попытался:
<Directory /var/www/i*>
Deny from all
</Directory>
Это запрещает доступ только к файлам/каталогам, начиная с "i".
Есть ли способ изменить это поведение и позволить <Directory>
сопоставлять только каталоги? Есть ли другой способ добиться того, что все подкаталоги запрещены? (кроме того, что все они вручную запрещены или разрешены все файлы вручную)