虚拟主机如何禁止目录访问
之前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 文件,很方便。