Как можно запретить доступ ко всем подкаталогам данного каталога? (При этом разрешено вручную изменять права доступа для отдельных элементов в дереве каталогов.)
Я пытался сделать это с помощью директив <Directory(Match)>
. Конфигурация сервера (с поддержкой 000 сайтов) выглядит так:
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>
соответствовать только каталогам? Есть ли другой способ сделать так, чтобы все подкаталоги были запрещены? (помимо запрета на все из них вручную или включения всех файлов вручную)