一、默認情況
默認情況下,Apache的配置文件
/etc/httpd/conf/httpd.conf
中有如下參數:
引用
<Directory "/var/www/html">
Options Indexes FollowSymLinks
......
</Directory>
也就是說,在目錄下沒有默認首頁面(如:index.html index.php等)時,可以讓用戶直接浏覽web目錄架構,這可能會導致一些重要的目錄或配置文件被公開。
通常在Web應用上也會做一些安全考慮,以Bo-Blog為例,一些目錄下會有類似的文件:
引用
# cat inc/index.php
<?php
die ('Access Denied');
這樣,可以避免用戶直接浏覽該目錄時,看到整個目錄結構。但如果訪問它下面的子目錄就沒什麼作用了:
所以,這還是不太安全。
二、修改配置文件
安全起見,我建議還是把Indexes選項關閉比較好,方法有兩種:
1、全局關閉
修改上面提到的配置文件/etc/httpd/conf/httpd.conf,把:
引用
Options Indexes FollowSymLinks
改為:
引用
Options -Indexes FollowSymLinks
重啟httpd服務即可,這樣可以把所有網站的Indexes選項都取消。
2、修改.htaccess文件
如需要針對特定的網站取消該功能,可以先打開.htaccess支持,修改/etc/httpd/conf/httpd.conf:
引用
<Directory "/var/www/html">
......
AllowOverride None
......
</Directory>
修改為:
引用
<Directory "/var/www/html">
......
AllowOverride All
......
</Directory>
然後,在各網站的主目錄下寫入一個.htaccess文件,內容有:
引用
# head .htaccess
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
......
Options -Indexes 就這句話 保存後馬上生效。
這時,訪問同樣的路徑,就會報下面的錯誤提示: