La lista de archivos y directorios que Apache ofrece como respuesta ante una petición que tiene como ruta un directorio tiene como nombre DirectoryListing. En principio es una característica, pero es cierto que a muchos nos interesa deshabilitarla por motivos de seguridad.
Apache en primer lugar busca un archivo index
dentro de la ruta solicitada. La configuración por defecto es:
DirectoryIndex index.html index.htm index.php welcome.html
Es decir, busca dentro de la ruta cualquiera de los archivos de la lista. En el caso de no encontrar ningún nombre de archivo que coincida con la lista de la configuración, genera su propia lista.
En primer lugar tienes que deshabilitar la generación de esas "listas", y se hace con la directiva Options de la configuración, en concreto con el valor Options -Indexes
.
<Directory /home/httpd/turuta>
Options -Indexes
AllowOverride all
Order allow,deny
allow from all
</Directory>
Ese código puede ir tanto en el fichero de configuración general (httpd.conf
) como en el de cada carpeta (.htaccess
).
Extra: Aunque con esa configuración tiene que sobrar, en ocsasiones encontraras que se crean archivos index.html
vacíos (o que muestren un texto de error) en las carpetas que no quieren que puedan listarse. Recordemos que Apache ejecuta 2 pasos:
- Busca archivos index, si lo encuentra termina
- Si no encuentra index, genera el suyo propio
Mediante la configuración anterior le dices que no ejecute el punto 2. Si al directorio le pones un index.html manualmente, Apache nunca pasará del punto 1. Es una solución menos segura pero efectiva si se cumple a rajatabla.
Fuente: http://wiki.apache.org/httpd/DirectoryListings