[Server] Apache Http自訂錯誤訊息頁面


目錄

在架設網站時如果遇到錯誤通常是越清楚越好

所以會在伺服器上設定輸出除錯資訊以方便我們除錯

但是在公開的網站上

為了避免透漏過多資訊造成漏洞的產生

我們會將資訊隱藏

來避免洩漏資訊給有心人士

 

在Apache就可以做這樣的設定

我們可以依照自己的需求來設定當遇到什麼錯誤時要有什麼輸出資訊

可以是很含糊地、也可以把所有資訊列出來

全看自己需求而定

只要在Acache的主設定檔修改即可

vim /etc/httpd/conf.d/httpd.conf

找到#ErrorDocument 403的地方

#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var

在上面看到的就是預設的輸出內容

此時只要將註解刪掉

就可以讓自己的設定生效了

如果在設定檔上沒有找到

也可以自己新增

 

錯誤訊息的設定方式有三種

第一種

直接顯示文字訊息

ErrorDocument 404 "欲顯示出來的錯誤訊息文字"

遇到錯誤輸出時就只會有"欲顯示出來的錯誤訊息文字"這行字

第二種

顯示自訂的錯誤頁面

要先寫好一個網頁頁面如404.html

然後在主設定檔中修改成

ErrorDocument 404 /404.html

遇到錯誤就會顯示404.html這個頁面囉!

第三種

顯示外部網站的錯誤頁面

ErrorDocument 404 http://www.example.com/404.html

遇到錯誤就會轉址到www.example.com/404.html

並顯示其中的畫面啦!

 

設定之後也是重新啟動服務就可以讓設定生效啦~

 

在下面也列出常見的錯誤訊息

讓大家方便設定

ErrorDocument 400 HTTP_BAD_REQUEST 錯誤的要求
ErrorDocument 401 HTTP_UNAUTHORIZED 未授權的動作
ErrorDocument 403 HTTP_FORBIDDEN 該動作禁止存取
ErrorDocument 404 HTTP_NOT_FOUND 找不到檔案或目錄
ErrorDocument 405 HTTP_METHOD_NOT_ALLOWED 系統不允許該要求的方法
ErrorDocument 408 HTTP_REQUEST_TIME_OUT 要求的動作超過伺服器的等待時間
ErrorDocument 412 HTTP_PRECONDITION_FAILED 先決條件失敗
ErrorDocument 413 HTTP_REQUEST_ENTITY_TOO_LARGE 要求的實體太大
ErrorDocument 414 HTTP_REQUEST_URI_TOO_LARGE 要求的URI太長
ErrorDocument 415 HTTP_UNSUPPORTED_MEDIA_TYPE 不支援的媒體格式
ErrorDocument 500 HTTP_INTERNAL_SERVER_ERROR 內部伺服器錯誤
ErrorDocument 501 HTTP_NOT_IMPLEMENTED 未執行的錯誤
ErrorDocument 502 HTTP_BAD_GATEWAY 不正確的閘道
ErrorDocument 503 HTTP_SERVICE_UNAVAILABLE 伺服器可能忙碌中故無法回應

如果正在開發階段

可以自行編寫網頁來顯示錯誤內容外

也可以引入相關的紀錄檔

方便我們除錯

 

詳細的網頁伺服器錯誤代碼可以看w3c的伺服器錯誤訊息代碼說明文件:https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Leave a comment

你的電子郵件位址並不會被公開。 必要欄位標記為 *