Параметры Apache - Индексы для подкаталогов

Параметры Apache - Индексы для подкаталогов

ЗаКак запретить людям просматривать список файлов в родительском каталоге, если я не загрузил 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>

(не испытано)

Связанный контент