Вы можете использовать директиву IndexIgnore
для:
# Hide the link to the parent directory
IndexIgnore ..
# Hide named subdirectories
IndexIgnore subdir dir-a
Однако я не вижу, как вы можете "игнорировать" любой подкаталог, используя подстановочный синтаксис в стиле оболочки, поддерживаемый директивой IndexIgnore
?
Однако вы можете использовать mod_rewrite и тот факт, что mod_autoindex выдает внутренний подзапрос для каждого ресурса в списке каталога, чтобы подавить (запретить) подкаталоги. Например:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^[\w_-]+/$ - [F]
Шаблон RewriteRule
просто обеспечивает ресурс, похожий на каталог (да, запрошенный URI заканчивается в sla sh) , Условие фактически проверяет, что это каталог, перед возвратом 403 Forbidden. Этого достаточно, чтобы просто предотвратить подкаталог в списке. 403 не возвращается клиенту, это просто ответ на внутренний подзапрос.
Примечание: не блокируйте сам каталог (например, RewriteRule ^ - [F]
), иначе он полностью заблокирует ваш список каталогов.
или я должен написать свое собственное приложение?
Зависит от того, сколько контроля вы хотите.