2010-01-01 10 views
5

Necesito detener la lista de directorios del directorio de imágenes en un sitio web. Estoy configurando un dominio sin cookies para imágenes y JavaScript en un sitio. He realizado la configuración de CNAME y he agregado la configuración de hosts virtuales a continuación en el archivo httpd.conf. Pero, si accedo directamente a este dominio sin cookies, se enumera todo el contenido del directorio. ¿Cómo resolver este problema?Opciones de Apache - La configuración de índices no funciona

 
<VirtualHost ipaddr:80> 
    ServerAdmin [email protected] 
    ServerName imgs.site.com 
    ServerAlias www.imgs.site.com 
    DocumentRoot /usr/tomcat/webapps/site/images 

    <Directory /usr/tomcat/webapps/site/images> 
     Options -Indexes FollowSymLinks 
     AllowOverride none 
    </Directory> 

    CustomLog logs/imgs.site.com_access_log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" 
    ErrorLog logs/imgs.site.com_error_log 
</VirtualHost> 

<VirtualHost ipaddr:80> 
    ServerAdmin [email protected] 
    ServerName imgs.site.com 
    ServerAlias www.imgs.site.com imgs.site.net 
    DocumentRoot /usr/tomcat/webapps/site/images 

    <Directory /usr/tomcat/webapps/site/images> 
     Options -Indexes FollowSymLinks 
     AllowOverride none 
    </Directory> 

    CustomLog logs/imgs.site.com_access_log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" 
    ErrorLog logs/imgs.site.com_error_log 
</VirtualHost> 

Respuesta

1

Una solución rápida es poner un archivo en el directorio index.html, con contenido arbitrario. La indexación mostrará el contenido de este archivo en lugar de la lista del directorio.

7

Creo que la ruta en la directiva Directory se adjunta al DocumentRoot, por lo que realmente ordena Apache no indexar /usr/tomcat/webapps/site/images/usr/tomcat/webapps/site/images. Pruebe la siguiente configuración en su lugar:

DocumentRoot /usr/tomcat/webapps/site 

<Directory ~ "/.*/"> 
    Options -Indexes 
</Directory> 

Esto debería desactivar la indexación de directorios en todas las carpetas bajo /usr/tomcat/webapps/site, por ejemplo. /usr/tomcat/webapps/site/images/, /usr/tomcat/webapps/site/fubar/ y así sucesivamente.

+2

> Creo que ese camino en La directiva 'Directory' se adjunta a' DocumentRoot' << Parece que estaba equivocado: "' Directory-path' es la * ruta completa * a un directorio, o una cadena comodín que usa la coincidencia de estilo de shell Unix "(http://httpd.apache.org/docs/2.2/mod/core.html#directory). Por lo tanto, mi ejemplo solo funcionó porque coincidía * con todos los directorios * del host. – hudolejev

1
Options -Indexes FollowSymLinks 

Desde el Apache 2.0 y Apache 2.2 docs:

Advertencia
mezcla Options con un + o - con aquellos sin no es una sintaxis válida, y es probable que cause inesperado resultados.

En Apache 2.4 esto será ...

... rechazadas durante el arranque del servidor en la comprobación de sintaxis con un aborto.

lo tanto, que básicamente necesita un + frente a FollowSymLinks (o retira la - frente a Indexes si quieres anulación directivas anteriores.):

Options -Indexes +FollowSymLinks 
+0

Me pregunto si es necesario usar '-Indexes' si no queremos que se realice la indexación de directorios. ¿No podemos simplemente NO INCLUIR índices? y tiene las opciones de esta manera: 'Opciones FollowSymLinks' –

Cuestiones relacionadas