一般來說蠻多虛擬主機預設是沒有開啟保護網站主機目錄下的檔案,其實蠻危險的,假若你的目錄下忘記放置index檔案,那很可能您目錄就被看光,一個不小心很可能重要資料就被拿走,這是蠻嚴重的一件事情。如果是Linux主機,我們可以透過簡易的.htaccess語法來保護網站主機目錄下的檔案,讓別人無法輕易看見。
平常我們使用的最簡單保護目錄的方法,莫過於使用「index.php」、「index.html」等等之類的網站index檔案,因為主機內預設的設定在目錄中預設就是要抓index檔案,而index檔案通常會有很多種,主機會依續排列下來抓取,所以可以設定index檔案來讓主機抓取,以達到保護目錄的效果。但如果主機需要的index檔案沒有一個存在,這時候主機就會直接顯示目錄內的東西了,因為主機不知道要抓取誰當作主要網頁,所以會全部顯示。
雖然使用index檔案來保護目錄是可行的,但是每個子目錄都需要傳一個index檔案其實蠻累人的,這時候我們就可以利用「.htaccess」來批量處理,不知道大家還記不記得之前介紹過很多「.htaccess」的妙用,例如圖片防盜連、封鎖搜尋引擎、封鎖特定國家的訪客等等,都是利用.htaccess來達成,這回要防止主機下的目錄、檔案被看光,一樣也是利用它,我們只要在網站根目錄建立一個.htaccess檔案就可以保護所有子目錄囉!
產生.htaccess檔案
如果要使用.htaccess來保護目錄,其實做法很簡單,首先請開啟您的FTP軟體,先開啟FTP軟體可以顯示.htaccess隱藏檔案,然後連線到您網站的FTP,如果上面已經有.htaccess請下載回來,如果沒有.htaccess檔案,請您開啟記事本新增一個文字文件,然後儲存檔名是「htaccess.txt」。
加入保護目錄檔案語法
語法非常的簡單,首先請開啟您剛建立的「.htaccess」檔案,在檔案的最開頭加入以下語法一小段語法就可以了。
Options -Indexes
接著請您將.htaccess.txt存檔並將檔案上傳您的網站的FTP空間,接著請在FTP端將剛剛上傳的檔案更名為「.htaccess」,如果沒有更正,那.htaccess檔案是不會產生任何保護目錄的效果喔!
Forbidden 網頁禁止存取
在還沒使用禁止存取目錄的語法之前,目錄下所有檔案或是資料夾訪客可以一目瞭然的看光光,也可以輕鬆將所有檔案下載走,如果目錄內存有重要的資料,就很有可能被下載走,那就危險了。
當我們使用剛剛的一小串語法後,你會清楚的看到主機端會告訴你,你沒有權限存取這個目錄下所有的東西,這樣別人就不知道你這個目錄下到底放了什麼檔案囉!當然使用了這個語法並不會你網站在存取這個檔案的權限,它只是讓你無法在該目錄下看到,但事實上,若你網站上有使用到這檔案,還是可以正常使用的,圖片不會出現錯誤、檔案下載也不會無法下載。
語法的進階使用
當然該語法還有其他相關的用途,以下列出簡單的幾項供大家參考使用,如果你覺得以下的語法不是你想要或是想學更多,你可以到Apache官方網站來看看英文說明書,查看看還有什麼關於「indexoptions」的用途或是其他不錯的功能喔!
- Options +Indexes:顯示目錄下所有檔案
- Options -Indexes:隱藏目錄下所有檔案 (上面已經介紹過)
- IndexOptions +FancyIndexing:顯示目錄下所有檔案,檔案前面包含檔案類型的小圖示
- IndexOptions -FancyIndexing : 顯示目錄下所有檔案,但不包含檔案類型的小圖示
- IndexIgnore *.php *.exe:隱藏特定的檔案, 其餘檔案正常顯示(隱藏所有的php和exe檔案)
謝謝分享
你好~謝謝你的仔細介紹。我寫入Options -Indexes後,重新上傳FTP得到錯誤 553 Can’t open that file: Disk quota exceeded,上網google得到要修改服務器的設置(但沒教學所以有看沒懂?),所以目前整個網站掛了,點入都是404錯誤,能否給我一些建議該怎麼辦好
也有可能伺服器不支援,或者是你寫錯地方。可以問問虛擬主機商。
感謝您的介紹!
如果每一個目錄都設index.html或index.php會超麻煩!
對啊!! 所以有時候會透過 .htaccess 放最上層,或者是說直接請主機商打開。
IndexIgnore 可以隱藏特定格式的檔案
所以 IndexIgnore *.* 也可以隱藏目錄下所有檔案
也就是 IndexIgnore *.* = Options -Indexes
XD
很實用的網站目錄管理保護機制,謝謝您的介紹!
不會 :)
嗯 这个问题 我前几天也遇到了。原因是我用的hawkhost主机 也许是小公司 一些方面做的还不够,在这之前 用的 gd lp等主机 从来没遇到这样的事情。
另外还有一点 添加“Options All -Indexes ”并不一定都适用 或许是需要apache重启吧?
还有 也可以在CPanel 后台面板 -索引管理器 里修改,但会出现该被抓取的索引目录成为404页面, 这对于SEO来说并不友好。唉! 我果断的选择退款!比较纠结的事情!
板大人您好,我最近才剛碰.htaccess,所以還在摸索.
請教您一個蠢問題,我常瀏覽別人的網站,結果都不會顯示他門網頁的檔名,如:page1.html or page2.php,好像只會出現資料夾的名稱.
類似這個兩個網站的情形 http://www.shockfb.com/shock/
http://twalk2support.com/knowledgebase/
請問用是透過.htaccess弄得嗎? 要打什麼呢?
謝謝
其實這跟.htaccess沒關係,你仔細去抓Chroem 的載入頁面就知道他是單純的HTML,裡面利用了類似AJAX 或者FLASH 也說不定,然而沒SHOW副檔名是因為它直接對應到上層資料夾,像是網址一樣
EX
http://www.facebook.com/index.php → http://www.facebook.com
有三種方法可以達成:
一、用 .htaccess 去處理。
二、用 html frame 或 iframe 去嵌入 page1.hml、page2.php …
三、AJAX技術或者Flash。
您好,我找到這個網站說可以下載php留言板驗證碼套件來阻擋垃圾留言。
http://www.tshopping.com.tw/redirect.php?tid=67329&goto=lastpost
可是我實在看不懂他的解釋,因為沒有像魷魚絲每次都說的很容易懂。
根本不知道要把那語法加在哪一個.PHP的檔案下,
不知道可以問您嗎?
因為我一直試了一晚都不行,還是依然再受攻擊@@
您好。雖然我還是不是很明白這個檔案的功能…
不過因為昨天晚上開始我的網店受到垃圾機器人留言攻擊,殺到手軟也殺不了,現在大概超過2000則了。有詢問OSC公司但都還沒回覆,寫信詢問主機公司,對方客服建議我提出開啟『.htaccess』申請。所以已經申請了。
申請之後,就可以防止垃圾留言繼續攻擊嗎?還是…?!
客服建議說留言版程式要加寫驗證機制,雖然我也清楚,因為WP裝了外掛後真的差好多。可是OSC我就不知道要怎麼處理,有去OSC討論區,但我也卻無法進入,會一直跳出~?
沒想到垃圾留言攻擊如此可怕啦~
我連在系統上設定封鎖IP都沒辦法救…那IP是假的嘍?!
>>IndexIgnore *.php *.exe:隱藏特定的檔案, 其餘檔案正常顯示(隱藏所有的php和exe檔案)
這樣設定連站內都無法開啟嗎?
還是只有封鎖外部連進來讀取這兩種檔案?
諾的應該有保護的好好的。^_^
剛剛進站時讀好久喔!>< 用index.htm來保護 無腦又簡單!:p