, ,

Apache設定限制目錄瀏覽的方法

Posted by

Apache設定限制目錄瀏覽的方法

很多人設定Apache都會碰到的問題之一,就是該怎麼限制別人瀏覽自己網站的目錄。如果沒限制,目錄內所有檔案的位置都會被看到,有更新但還未公開在首頁的檔案就會被看到。

這個網站的目錄來說(不好意思我拿這個站當範例),就是可以瀏覽該目錄內的所有文件。

有一種很簡單但沒效率的作法是在你不想公開給外面看到的每個目錄下面,都放一個內容空白的index.html,讀取該目錄就會出現空白或你寫在該檔案設定的轉址頁面,但這僅適合用在免費網頁空間,一般不建議這樣使用。另一種方式則是使用.htaccess檔案,藉由裡面的規則來限定存取範圍,但設定上還是有些麻煩之處。

我個人最喜歡,又覺得好設定的方法就是修改Apache的設定檔httpd.conf。該怎麼做呢?

首先,用文字編輯器打開Apache的設定檔httpd.conf,找到設定文件目錄區塊中的這一行:

Options Indexes FollowSymLinks MultiViews

改成這樣存檔後,重新啟動Apache即可:

Options FollowSymLinks MultiViews

之所以去掉Indexes這個功能,是讓Apache不自動產生目錄的索引,就不會出現前面燦坤網站某一個文件目錄列出目錄頁面的情形。如果你的Apache有將Indexes拿掉,點選連結目錄就不會秀出目錄來,會改成403 forbidden的訊息頁面。

這裡有個範例可以參考,魅力站的mallist目錄是限制存取的。

403 forbidden意味著該頁面禁止存取,也達到避免目錄被看光光的目的。至於MultiViews這是可以讓Apache送出多國語言支援的頁面,FollowSymLinks是讓Apache能夠連到其它的目錄去執行,如果是Windows系統的使用者,將這個功能拿掉比較好。

如果覺得這個403之類的錯誤訊息提示頁面不好看的話,請看這篇自訂Apache的錯誤訊息頁面,就可以自訂了。

歡迎留下您的想法與意見:
新網站新氣象,會想到緞帶教堂的美好
一直很喜歡的緞帶教堂 Ribbon Chapel
2005 年 12 月
 1234
567891011
12131415161718
19202122232425
262728293031