2010-01-01 3 views
5

Мне нужно остановить каталог каталогов каталогов изображений на веб-сайте. Я настраиваю cookieless домен для изображений и javascripts на сайте. Я выполнил конфигурацию CNAME и добавил ниже конфигурацию виртуальных хостов в файле httpd.conf. Но, если я напрямую получаю доступ к этому файлу без cooki, он перечисляет весь контент каталога. Как решить эту проблему?Параметры Apache - Конфигурация Indexes не работает

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

ответ

1

Быстрый обходной путь, чтобы положить index.html файл в папку с произвольным содержанием. Индексирование отобразит содержимое этого файла, а не список каталогов.

7

Я думаю, что путь в директиве Directory прилагается к DocumentRoot, поэтому вы фактически заказываете Apache не индексировать /usr/tomcat/webapps/site/images/usr/tomcat/webapps/site/images. Попробуйте следующую конфигурацию вместо:

DocumentRoot /usr/tomcat/webapps/site 

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

Это следует отключить индексирование каталогов во всех папках под /usr/tomcat/webapps/site, например. /usr/tomcat/webapps/site/images/, /usr/tomcat/webapps/site/fubar/ и так далее.

+2

> Я думаю, что путь в Директива 'Directory' добавляется к' DocumentRoot' << Похоже, что я ошибался: «« Путь к каталогу »является либо полным путем * к каталогу, либо строкой wild-card, использующей Unix shell-style matching» (http://httpd.apache.org/docs/2.2/mod/core.html#directory). Итак, мой пример работал только потому, что он соответствовал * каждой директории * внутри хоста. – hudolejev

1
Options -Indexes FollowSymLinks 

С Apache 2.0 и Apache 2.2 docs:

Внимание
Mixing Options с + или - с теми без не действует синтаксис, и, вероятно, вызовет неожиданные Результаты.

В Apache 2.4 это будет ...

... отвергнута во время запуска сервера при проверке синтаксиса с прерыванием.

Таким образом, вы в основном нужно перед FollowSymLinks в + (или удалить - перед Indexes, если вы хотите отменяют предыдущих директив.):

Options -Indexes +FollowSymLinks 
+0

Интересно Если вам нужно использовать '-Indexes', если мы не хотим, чтобы индексирование каталога выполнялось. не можем ли мы просто НЕ ВКЛЮЧАТЬ индексы? и имеют следующие опции: 'Options FollowSymLinks' –

Смежные вопросы