.httacces檔案的配置技巧_Linux
最後更新:2017-01-18
來源:互聯網
上載者:User
1.配置.htaccess 自訂錯誤頁
我要介紹的.htaccess的第一個應用是自訂錯誤頁面,這將使你可以擁有自己的、個人化的錯誤頁面(例如找不到檔案時),而不是你的服務商提供的錯誤頁或沒有任何頁面。這會讓你的網站在出錯的時候看上去更專業。你還可以利用指令碼程式在發生錯誤的時候通知你(例如我使用Free Webmaster Help的PHP指令碼程式,當找不到頁面的時候自動e-mail給我)。
你所知道的任何分頁錯誤代碼(像404找不到頁面),都可以通過在.htaccess檔案裡加入下面的文字將其變成自訂頁面:
ErrorDocument errornumber /file.html
舉例來說,如果我的根目錄下有一個nofound.html檔案,我想使用它作為404 error的頁面:
ErrorDocument 404 /notfound.html
如果檔案不在網站的根目錄下,你只需要把路徑設定為:
ErrorDocument 500 /errorpages/500.html
以下是一些最常用的錯誤:
常用的用戶端請求錯誤傳回碼:
400 - Bad request 錯誤請求
401 Authorization Required需要驗證
403 Forbidden禁止
404 Not Found找不到頁面
405 Method Not Allowed
408 Request Timed Out
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type
常見的伺服器錯誤傳回碼:
500 Internal Server Error內部伺服器錯誤
接下來,你要做的只是建立一個錯誤發生時顯示的檔案,然後把它們和.htaccess一起上傳。
使用者可以利用.htaccess指定自己事先製作好的錯誤提醒頁面。一般情況下,人們可以專門設立一個目錄,例如errors放置這些頁面。然後再.htaccess中,加入如下的指令:
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/internalerror.html
一條指令一行。上述第一條指令的意思是對於404,也就是沒有找到所需要的文檔的時候得顯示頁面為/errors目錄下的notfound.html頁面。不難看出文法格式為:
ErrorDocument 錯誤碼 /目錄名/檔案名稱.副檔名
如果所需要提示的資訊很少的話,不必專門製作頁面,直接在指令中使用HTML號了,例如下面這個例子:
ErrorDocument 401 “你沒有許可權訪問該頁面,請放棄!”
2.配置.htaccess 停示顯示目錄列表
有些時候,由於某種原因,你的目錄裡沒有index檔案,這意味著當有人在瀏覽器地址欄鍵入了該目錄的路徑,該目錄下所有的檔案都會顯示出來,這會給你的網站留下安全隱患。
為避免這種情況(而不必建立一堆的新index檔案),你可以在你的.htaccess文檔中鍵入以下命令,用以阻止目錄列表的顯示:
Options -Indexes
3.配置.htaccess 阻止/允許特定的IP地址
某些情況下,你可能只想允許某些特定IP的使用者可以訪問你的網站(例如:只允許使用特定ISP的使用者進入某個目錄),或者想封鎖某些特定的IP地址(例如:將低級使用者隔離於你的資訊版面外)。當然,這隻在你知道你想攔截的IP地址時才有用,然而現在網上的大多數使用者都使用動態IP地址,所以這並不是限制使用的常用方法。
你可以使用以下命令封鎖一個IP地址:
deny from 000.000.000.000
這裡的000.000.000.000是被封鎖的IP地址,如果你只指明了其中的幾個,則可以封鎖整個網段的地址。如你輸入210.10.56.,則將封鎖210.10.56.0~210.10.56.255的所有IP地址。
你可以使用以下命令允許一個IP地址訪問網站:
allow from 000.000.000.000
被允許的IP地址則為000.000.000.000,你可以象封鎖IP地址一樣封鎖整個網段。
如果你想阻止所有人訪問該目錄,則可以使用:
deny from all
不過這並不影響指令碼程式使用這個目錄下的文檔。
4.配置.htaccess 替換index檔案
改變預設的首頁檔案
一般情況下預設的首頁檔案名稱有default、index等。不過,有些時候目錄中沒有預設檔案,而是某個特定的檔案名稱,比如在w3sky中是 w3sky.PHP。這種情況下,要使用者記住檔案名稱來訪問很麻煩。在.htaccess中可以輕易的設定新的預設檔案名稱:
DirectoryIndex 新的預設檔案名稱
也可以列出多個,順序表明它們之間的優先順序別,例如:
DirectoryIndex filename.html index.cgi index.pl default.htm
也許你不想一直使用index.htm或index.html作為目錄的索引檔案。舉例來說,如果你的網站使用PHP檔案,你可能會想使用 index.PHP來作為該目錄的索引文檔。當然也不必局限於“index”文檔,如果你願意,使用.htaccess你甚至能夠設定 foofoo.balh來作為你的索引文檔!
這些互為替換的索引檔案可以排成一個列表,伺服器會從左至右進行尋找,檢查哪個文檔在真實的目錄中存在。如果一個也找不到,它將會把目錄列表顯示出來(除非你已經關閉了顯示目錄檔案清單)。
DirectoryIndex index.PHP index.PHP3 messagebrd.pl index.html index.htm
5.配置.htaccess 重新導向頁面
.htaccess最有用的功能之一就是將請求重新導向到同站內或站外的不同文檔。這在你改變了一個檔案名稱,但仍然想讓使用者用舊地址訪問到它時,變的極為有用。另一個應用(我發現的很有用的)是重新導向到一個長URL,例如在我的時事通訊中,我可以使用一個很簡短的URL來指向我的會員連結。以下是一個重新導向檔案的例子:
Redirect /location/from/root/file.ext
http://www.w3sky.com/new/file/123.html
上述例子中,訪問在root目錄下的名為oldfile.html可以鍵入:
/oldfile.html
訪問一箇舊次級目錄中的檔案可以鍵入:
/old/oldfile.html
你也可以使用.htaccess重新導向整個網站的目錄。假如你的網站上有一個名為olddirectory的目錄,並且你已經在一個新網站 http://www.w3sky.com/newdirectory/上建立了與上相同的文檔,你可以將舊目錄下所有的檔案做一次重新導向而不必一一聲明:
Redirect /olddirectory http://www.w3sky.com/newdirectory
這樣,任何指向到網站中/olddirectory目錄的請求都將被重新指向新的網站,包括附加的額外URL資訊。例如有人鍵入:
http://www.w3sky.com/olddirecotry/oldfiles/images/image.gif
請求將被重新導向到:
http://www.w3sky.com/newdirectory/oldfiles/images/image.gif
如果正確使用,此功能將極其強大。
我們可能對網站進行重新規劃,將文檔進行了遷移,或者更改了目錄。這時候,來自搜尋引擎或者其他網站連結過來的訪問就可能出錯。這種情況下,可以通過如下指令來完成舊的URL自動轉向到新的地址:
Redirect /舊目錄/舊文檔名 新文檔的地址
或者整個目錄的轉向:
Redirect 舊目錄 新目錄