在使用網站的時候,碰到錯誤訊息頁面,一般都是以伺服器預設的頁面呈現給大家看。如果想要自訂Apache網頁伺服器軟體或其它同類軟體的錯誤訊息頁面,最簡單的方是就是修改httpd.conf或相關設定檔。
下面我們用Apache的httpd.conf來說明自訂Apache錯誤訊息頁面的方法:
打開httpd.conf後,找到下面這一段用# mark起來的文字說明:
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
你可以複製一下這幾段文字放在文字說明的下方:
ErrorDocument 500 "欲顯示出來的錯誤訊息文字"
ErrorDocument 404 /欲給網友看的錯誤訊息網頁檔案名稱
ErrorDocument 403 "與給網友看的cgi檔案名稱"
ErrorDocument 402 http://欲給網友看的外部錯誤訊息網址
上面用中文打的,就是看你要用什麼方式來處理錯誤訊息頁面,Apache主要提供了三種方式:
第一種就是最簡單的,直接秀出一段你寫好的錯誤訊息頁面,比方說「找不到網頁喔,您是不是網址打錯了?」
第二種方式應該是很多網站,包括本站都會採用的,直接轉址到你指定的頁面,而且是在伺服器裡面的。你可以設定好404.html、403.html或401.php等等任意想給網友看的錯誤訊息頁面。甚至,不要讓網友看到錯誤訊息頁面,直接導回或你指定的頁面也可以。
第三種方式則是自動轉址到外部的網站、網址,比方說找不到的網頁你想讓網友通通跑到某個網站(新網站或新網址)去看,就可以這麼做。這對某些網站或blog改版後,連結無法改成兼容新舊兩版的時候,甚至連結都遺失了,那麼你可以讓網友們都連到新的網站頁面,至少在那邊還有機會找到相同內容,但網址不一樣的文章。
Apache一定要設定的一些錯誤訊息頁面,我認為是代碼404的找不到網頁,以及代碼403的禁止存取這兩個錯誤訊息頁面。故請記得在httpd.conf裡,至少設定這兩個:
ErrorDocument 404 /欲給網友看的找不到網頁錯誤訊息網頁檔案名稱
ErrorDocument 403 /欲給網友看的禁止存取錯誤訊息網頁檔案名稱
我自己在yblog.org採用的方式,則是是將錯誤訊息頁面都導到首頁去。
你也可以看這篇常見Apache錯誤訊息代碼的說明,就可以知道主要常見的錯誤訊息代碼分別代表著什麼。