
Por¿Cómo puedo evitar que las personas vean una lista de archivos en el directorio principal si no he subido index.html?Puedo ver cómo deshabilitar la lista de archivos si no hay ningún archivo index.*.
¿Cómo puedo permitir la lista de archivos para el directorio raíz, pero no para ningún otro subdirectorio?
Gracias de antemano.
Respuesta1
Dado que etiquetó la pregunta .htaccess
, podría hacer algo como lo siguiente en el .htaccess
archivo raíz de 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>
Respuesta2
Normalmente los subdirectorios heredarán la misma configuración que aplica a su directorio principal en Apache. Y, hasta donde yo sé, no se puede cambiar eso y no existe una manera de limitar el alcance de las directivas a un solo nivel de directorio.
Eso significa que necesitas:
- establezca la opción/directiva que desee en el directorio principal
- cambiar/anular/negar esa opción/directiva para todos los subdirectorios (actuales y nuevos).
En lugar de hacer eso para cada subdirectorio individualmente, es más fácil hacerlo con elDirectoryMatch
directiva.
En su conjunto principal httpd.conf (o un include)
<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>
(no probado)