/ 技术

虚拟主机如何禁止目录访问

之前http://www.haoest.com/上有一个bug,最早的时候,我有个Wordpress的Page,固定链接是http://www.haoest.com/products/,然后有一些Page是在products下的,如http://www.haoest.com/products/capture-show/。原本是没有什么问题的。但是后来,为了减少子域名数量,我不想建立太多诸如http://listmanager.haoest.com/这样的网站,而改为http://www.haoest.com/products/listmanager/这样的形式,把这些独立的站点都放到products文件夹里。只给一些重要的产品设置单独的子域名,因为我这个虚拟主机的子域名数量是有限的。但自从建立了products文件夹之后,问题出现了。

打开http://www.haoest.com/products/之后并不是显示原来的products的那个page,而是显示一个Index of的页面,把我products文件夹的列表显示出来了,很不友好,也很不安全。发现这个问题后,我立马想到应该可以通过.htaccess文件来解决,但后来不知道因为什么事情而耽搁了,就搞忘记了。后来,@梅崇华 提醒我这个问题,我才再次想起来这个事情。前些日子,通过一句简单的代码搞定了这个问题,今天把它记录下来,以便大家学习。

如果是自己的服务器的话,可以修改httpd.conf配置,把

<Directory "D:/xx/xx/xx">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

中的Options Indexes FollowSymLinks改为Options -Indexes FollowSymLinks就可以了,也就是在Indexes前面加了个减号,减号表示关闭,加号表示开启,不加符号表示默认。

但是,在虚拟主机中没办法修改httpd.conf文件,我们可以修改.htaccess文件,大多数虚拟主机都是可以使用.htaccess的。 在www.haoest.com的目录下添加.hatccess文件,如果没有的话,然后添加一句

Options -Indexes
就可以了。 至于网上还有的教程是添加

<Files *>
    Options -Indexes
</Files>

这个Files是什么意思,目前还不是很清楚,不过也是可以的。

给大家推荐一个Wordpress的SEO插件,叫Yoast WordPress SEO,超级强大,其设置里有个“编辑文件”,可以直接编辑robots.txt文件和.htaccess文件,很方便。

邓斌HADB

2013-02-27上午于教室