Apache Options - 索引配置不起作用

时间:2010-01-01 09:58:32

标签: apache httpd.conf

我需要停止网站上图片目录的目录列表。我正在为网站上的图像和javascripts配置cookieless域。我已经完成了CNAME配置,并在httpd.conf文件中添加了虚拟主机配置。但是,如果我直接访问这个无cookie域,它列出整个目录内容。如何解决这个问题呢?

<VirtualHost ipaddr:80>
    ServerAdmin webmaster@site.com
    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 webmaster@site.com
    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>

3 个答案:

答案 0 :(得分:9)

我认为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/等等。

答案 1 :(得分:4)

Options -Indexes FollowSymLinks

来自Apache 2.0和Apache 2.2 docs

  

警告
  将Options与+或 - 混合使用不是有效语法,可能会导致意外结果。

Apache 2.4中,这将是......

  

...在服务器启动期间通过语法检查拒绝中止。

所以,你基本上需要在+前面FollowSymLinks(如果你想覆盖以前定义的所有,则完全删除-Indexes参数>选项)。例如:

Options -Indexes +FollowSymLinks

答案 2 :(得分:2)

快速解决方法是将index.html文件放入具有任意内容的目录中。索引将显示此文件的内容,而不是目录列表。