
ЗаКак запретить людям просматривать список файлов в родительском каталоге, если я не загрузил index.html?Я вижу, как отключить вывод списка файлов, если нет файла index.*.
Как разрешить вывод файлов для корневого каталога, но не для всех остальных подкаталогов?
Заранее спасибо.
решение1
Поскольку вы отметили вопрос тегом .htaccess
, вы можете сделать что-то вроде следующего в корневом .htaccess
файле на Apache 2.4:
# Default - Directory listings disabled (mod_autoindex)
Options -Indexes
# Override - Allow directory listings for the root only
<If "%{REQUEST_URI} == '/'">
Options +Indexes
</If>
решение2
Обычно подкаталоги наследуют те же настройки, которые вы применяете к их родительскому каталогу в Apache. И, насколько мне известно, вы не можете это изменить, и не существует способа ограничить область действия директив только одним уровнем каталога.
Это означает, что вам необходимо:
- установите нужную опцию/директиву в родительском каталоге
- изменить/переопределить/отменить эту опцию/директиву для всех (текущих и новых) подкаталогов.
Вместо того, чтобы делать это для каждого подкаталога по отдельности, проще всего сделать это с помощьюDirectoryMatch
директива.
В вашем основном httpd.conf (или включаемом) установите
<Directory "/path/to/example.com/">
# enable directory listings
Options +Indexes
</Directory>
<DirectoryMatch "/path/to/example.com/.*/">
# Disable directory listings for all sub directories of /path/to/example.com/
Options -Indexes
</Directory>
(не испытано)