2011年9月14日 星期三

[引用].htaccess ErrorDocument 使用方式

來源:http://businesswing.net/webdesign/php-htaccess_to_do_system_protection/

網站伺服器在不能回應使用者需求下,會產生各種錯誤訊息,這些錯誤訊息均有一個代碼,我們來瞧瞧這代碼所代表的意義:
回應代碼 回應內容 代表意義
401 Authorization failed 授權失敗。使用者輸入的帳號密碼無法得到授權。
403 Forbidden 存取控制機制拒絕使用者的請求,也就是說你不可以讀取這個檔案。
404 File not found 被要求的網頁不存在於這個伺服器上,找不到檔案。
500 Internal Server Error 伺服器內部錯誤;可能是網站伺服器或PHP出了問題。
501 Not Implemented 伺服器不瞭解資料傳遞的方式。
503 Service Unavailable 這個伺服器目前正在處理太多的服務要求。
php_ch10-19
【圖19、找不到檔案時顯示方式】

如果我們想要自訂錯誤訊息呢?要設定錯誤頁,請在.htaccess中輸入
ErrorDocument 錯誤代碼 /網站根目錄開始的資料夾/檔名
例如當使用者找不到網頁時,會產生404錯誤的回傳,請在.htaccess內加入以下資料:
ErrorDocument 404 /error/notfound.htm
當使用者在瀏覽不存在的網頁時,就會自動轉向至localhost(或你的網站ip)/error/notfound.htm,
php_ch10-20
【圖20、自訂找不到檔案時顯示的內容】

所以您可針對上述的錯誤情形,在.htaccess內加入多行的語法:
ErrorDocument 401 /errors/authreqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/serverr.html
除了指向目錄內的網頁外,您也可以指向一個網址,就可以多個網站共用相同的錯誤訊息,再以找不到網頁時,會產生404錯誤的回傳,您可在.htaccess內加入以下資料:
ErrorDocument也可接一段文字或者直接指定一段html語法,但是,文字或html必須與ErrorDocument是同一行。找不到網頁時,希望顯示文字,您可在.htaccess內加入以下資料:
ErrorDocument 404 "Page not found!!"
找不到網頁時,希望顯示網頁,您可在.htaccess內加入以下資料:

ErrorDocument 404 "<h1><i>Page not found!!</i></h1>"

php_ch10-21
【圖21、自訂找不到檔案時顯示的內容】

另外:  若是因為絕對路徑與相對路徑的問題.
最好在前面加個 Alias 去把 /error/ 的路徑定義出來.  否則可能會因為路徑錯誤而找不到檔案.

Alias /errors/  "/var/www/web4/web/error/"
ErrorDocument 401 /errors/error.html


【下列文章您可能也有興趣】

沒有留言: