2010-01-01 15 views
5

Je dois arrêter la liste des répertoires du répertoire des images sur un site Web. Je configure le domaine sans cookie pour les images et javascripts sur un site. J'ai fait la configuration CNAME et ajouté ci-dessous la configuration des hôtes virtuels dans le fichier httpd.conf. Mais, si j'accède directement à ce domaine sans cookie, il répertorie l'ensemble du contenu du répertoire. Comment résoudre ce problème?Options Apache -La configuration des index ne fonctionne pas

 
<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> 

Répondre

1

Une solution rapide est de mettre un fichier index.html dans le répertoire, avec un contenu arbitraire. L'indexation affichera le contenu de ce fichier au lieu de la liste de répertoires.

7

Je pense que le chemin dans la directive Directory est ajouté à DocumentRoot, donc vous ordonnez en fait à Apache de ne pas indexer /usr/tomcat/webapps/site/images/usr/tomcat/webapps/site/images. Essayez la configuration suivante à la place:

DocumentRoot /usr/tomcat/webapps/site 

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

Cela devrait désactiver l'indexation des répertoires dans tous les dossiers sous /usr/tomcat/webapps/site, par exemple. /usr/tomcat/webapps/site/images/, /usr/tomcat/webapps/site/fubar/ et ainsi de suite.

+2

> Je pense que chemin La directive 'Directory' est ajoutée à' DocumentRoot' << Il est apparu que j'avais tort: ​​"' Directory-path' est soit le * chemin complet * d'un répertoire, soit une chaîne générique utilisant la correspondance de type shell Unix "(http://httpd.apache.org/docs/2.2/mod/core.html#directory). Donc, mon exemple ne fonctionnait que parce qu'il correspondait à * tout répertoire * dans l'hôte. – hudolejev

1
Options -Indexes FollowSymLinks 

De l'Apache 2.0 et Apache 2.2 docs:

Avertissement
mélange Options avec + ou - avec ceux qui n'est pas une syntaxe valide, et est susceptible de causer inattendu résultats.

En Apache 2.4 ce sera ...

... rejeté lors du démarrage du serveur par la vérification de la syntaxe avec un abort.

Donc, vous avez besoin fondamentalement un + devant FollowSymLinks (ou retirer le - devant Indexes si vous voulez override directives précédentes.):

Options -Indexes +FollowSymLinks 
+0

Je me demande s'il est nécessaire d'utiliser '-Index' si nous ne voulons pas que l'indexation des répertoires soit faite. ne pouvons-nous simplement pas inclure les index? et avoir les options comme ceci: 'Options FollowSymLinks' –