2010-01-01 18 views
5

Ho bisogno di interrompere l'elenco di directory della directory immagini su un sito web. Sto configurando un dominio senza cookie per immagini e javascript su un sito. Ho eseguito la configurazione CNAME e aggiunto sotto la configurazione degli host virtuali nel file httpd.conf. Ma, se accedo direttamente a questo dominio senza cucine, elenca l'intero contenuto della directory. come risolvere questo problema?Opzioni Apache -Indice configurazione non funzionante

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

risposta

1

Una soluzione rapida è quello di mettere un file index.html nella directory, con i contenuti arbitrari. L'indicizzazione mostrerà il contenuto di questo file invece dell'elenco di directory.

7

Penso che il percorso nella direttiva Directory sia aggiunto a DocumentRoot, quindi in realtà si ordina a Apache di non indicizzare /usr/tomcat/webapps/site/images/usr/tomcat/webapps/site/images. Provare la seguente configurazione invece:

DocumentRoot /usr/tomcat/webapps/site 

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

Questo dovrebbe disabilitare l'indicizzazione directory in tutte le cartelle sotto /usr/tomcat/webapps/site, ad es. /usr/tomcat/webapps/site/images/, /usr/tomcat/webapps/site/fubar/ e così via.

+2

> Credo che il percorso in La direttiva 'Directory' viene aggiunta a' DocumentRoot' << Sembrava che io avessi sbagliato: "' Directory-path' è il * percorso completo * per una directory, o una stringa jolly usando la corrispondenza stile shell Unix "(http://httpd.apache.org/docs/2.2/mod/core.html#directory). Quindi, il mio esempio ha funzionato solo perché corrispondeva a * ogni directory * all'interno dell'host. – hudolejev

1
Options -Indexes FollowSymLinks 

Dal Apache 2.0 e Apache 2.2 docs:

Attenzione
miscelazione Options con un + o - a quelli senza non è sintassi valida, ed è probabile che a causare imprevisti risultati.

In Apache 2.4 questo sarà ...

... respinto durante l'avvio del server dal controllo della sintassi con un'interruzione.

Quindi, è fondamentalmente bisogno di un + davanti FollowSymLinks (o rimuovere il - davanti Indexes se si vuole di override direttive precedenti.):

Options -Indexes +FollowSymLinks 
+0

Mi chiedo se sia necessario usare '-Indessi' se non vogliamo che l'indicizzazione delle directory sia fatta. non possiamo semplicemente NON INCLUDERE gli indici? e avere le opzioni come questa: 'Opzioni FollowSymLinks' –

Problemi correlati