如何禁止顯示 Apache 目錄列表 (.htaccess 文件引起 403Forbidden 禁止訪問的問題)
如何禁止 Apache 顯示目錄列表呢?
預設情況下如果你在瀏覽器輸入地址:
http://localhost:8080/
並且你將你的目錄索引文件設置為 index.html,且你的文件根目錄裡有 index.html,
瀏覽器就會顯示 index.html 的內容,如果沒有 index.html,瀏覽器就會顯示文件根目錄的目錄列表,
目錄列表包括文件根目錄下的文件和子目錄。
(注:索引文件的設置:)
#在這裡,你可以設置某個目錄被請求時,首先執行的文件
DirectoryIndex echo.php index.html index.php
同樣你輸入一個虛擬目錄的地址:
http://localhost:8080/b/
如果該虛擬目錄下沒有 index.html,瀏覽器也會顯示該虛擬目錄的目錄結構,列出該虛擬目錄下的文件和子目錄。
如何禁止 Apache 顯示目錄列表呢?
在 httpd.conf 文件裡找到類似這樣指令:
<Directory "D:/xx/xx/xx">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
將指令作這樣的修改:
方法一:在 Options Indexes FollowSymLinks 在 Indexes 前面加上 – 符號。
即: Options -Indexes FollowSymLinks
方法二:把 Options Indexes FollowSymLinks #---------->Options FollowSymLinks
方法三:在目錄裡加上.htaccess 文件,寫指令: Options FollowSymLinks
Indexes 的作用就是當該目錄下沒有 index.html 文件時,就顯示目錄結構,去掉 Indexes,Apache 就不會顯示該目錄的列表了。
備註:在 Indexes 前,加 + 代表允許目錄瀏覽;加 – 代表禁止目錄瀏覽。
以上部分信息,摘至:http://blog.chemdown.cn/server/prohibit-display-apache-directory-listing-indexes-followsymlinks.html
.htaccess 文件引起 403Forbidden 禁止訪問的問題
可能使用過 WORDPRESS 的朋友可能遇到過這個問題,
如 zaphod22 他就遇到http://wordpress.org/support/topic/htaccess-leads-to-403-forbidden?replies=6
實際上,這個問題也是由 “Options Indexes FollowSymLinks” 設置不當所造成的。當然,如果你不想改.ini 文件,
你可以在.htaccess 文件裡加入 +FollowSymLinks 指令。
特別注意:以上所用到的.htaccess 文件裡的指令要生效,必須都要目錄的 “AllowOverride All” 開啟的情況下才行。
另註:.htaccess 裡設置重定向的官網文檔:http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html