今天要介紹的:.htaccess的第一個應用是自定義錯誤頁面,這將使你能夠擁有本身的、個性化的錯誤頁面(例如找不到文件時),而不是你的服務商提供的錯誤頁或沒有任何頁面。這會讓你的網站在出錯的時候看上去更專業。你還能夠利用腳本程序在發生錯誤的時候通知你(例如我使用Free Webmaster Help的PHP腳本程序,當找不到頁面的時候自動e-mail給我)。php
你所知道的任何頁面錯誤代碼(像404找不到頁面),均可以經過在.htaccess文件里加入下面的文字將其變成自定義頁面:html
ErrorDocument errornumber /file.html //errornumber 像404等瀏覽器
舉例來講,若是個人根目錄下有一個nofound.html文件,我想使用它做爲404 錯誤的頁面:ErrorDocument 404 /notfound.html。若是文件不在網站的根目錄下,你只須要把路徑設置爲:ErrorDocument 500 /500錯誤頁面的路徑/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網站
常見的服務器錯誤返回代碼:ui
500 Internal Server Error內部服務器錯誤搜索引擎
用戶能夠利用.htaccess指定本身事先製做好的錯誤提醒頁面。通常狀況下,人們能夠專門設立一個目錄,例如統一放置在errors目錄下。而後再.htaccess中,加入以下的指令:spa
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/internalerror.htmlhtm
一條指令一行。上述第一條指令的意思是對於404,也就是沒有找到所須要的文檔的時候得顯示頁面爲/errors/notfound.html頁面。
不難看出語法格式爲:ErrorDocument 錯誤代碼 /目錄名/文件名.擴展名。
固然,若是所須要提示的信息不多的話,沒必要專門製做頁面,直接在.htaccess文件指令中使用HTML寫就能夠了,例以下面這個例子:
ErrorDocument 401 「你沒有權限訪問該頁面,請放棄!」
二、配置.htaccess 停示顯示目錄列表
有些時候,因爲某種緣由,你的目錄裏沒有index文件,這意味着當有人在瀏覽器地址欄鍵入了該目錄的路徑,該目錄下全部的文件都會顯示出來(也就是列目錄),這可能給你的網站留下安全隱患。爲避免這種狀況(而沒必要建立一堆的新index文件),你能夠在你的.htaccess文檔中鍵入如下命令,用以阻止目錄列表的顯示:
Options -Indexes
三、配置.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地址同樣封禁整個網段。
四、配置.htaccess 替換index文件
改變缺省的首頁文件。通常狀況下缺省的首頁文件名有default、index等。不過,有些時候目錄中沒有缺省文件,而是某個特定的文件名,好比在123目錄中是 123.php作首頁文件。這種狀況下,要用戶記住文件名來訪問很麻煩。在.htaccess中能夠輕易的設置新的缺省文件名:
DirectoryIndex 新的缺省文件名
也能夠列出多個,順序代表它們之間的優先級別,例如:
DirectoryIndex filename.html index.cgi index.pl default.htm
也許你不想一直使用index.htm或index.html做爲目錄的索引文件。舉例來講,若是你的站點使用PHP文件,你可能會想使用 index.php來做爲該目錄的索引文檔。固然也沒必要侷限於「index」文檔,若是你願意,使用.htaccess你甚至可以設置 foofoo.balh來做爲你的索引文檔!
這些互爲替換的索引文件能夠排成一個列表,服務器會從左至右進行尋找,檢查哪一個文檔在真實的目錄中存在。若是一個也找不到,它將會把目錄列表顯示出來(若是你沒有關閉顯示目錄的權限)。
五、配置.htaccess 重定向頁面
.htaccess最有用的功能之一就是將請求重定向到同站內或站外的不一樣文檔。這在你改變了一個文件名稱,但仍然想讓用戶用舊地址訪問到它時,變的極爲有用。你也可使用.htaccess重定向整個網站的目錄。假如你的網站上有一個名爲olddirectory的目錄,而且你已經在一個新網站 http://www.site.com/newdirectory/上創建了與上相同的文檔,你能夠將舊目錄下全部的文件作一次重定向而沒必要一一聲明:
Redirect /olddirectory? http://www.site.com/newdirectory/
這樣,任何指向到站點中/olddirectory目錄的請求都將被從新指向新的站點,包括附加的額外URL信息。例若有人鍵入:
http://www.site.com/olddirectory/oldfiles/images/image.gif
請求將被重定向到:
http://www.site.com/newdirectory/oldfiles/images/image.gif
可見,若是正確使用,此功能將極其強大。
咱們可能對網站進行從新規劃,將文檔進行了遷移,或者更改了目錄。這時候,來自搜索引擎或者其餘網站連接過來的訪問就可能出錯。這種狀況下,能夠經過以下指令來完成舊的URL自動轉向到新的地址:
Redirect /舊目錄/舊文檔名 新文檔的地址