當 HTTP 要求返回特定的錯誤狀態代碼時,可通過配置錯誤碼重新導向規則,自動將請求重新導向到自訂 URL,用以向訪問者展示品牌化的錯誤頁面或將流量引導至維護公告頁。
概述
在網站營運過程中,經常需要應對以下情境:
自訂 404 品牌頁面:當使用者訪問不存在的資源時,展示帶有自有品牌設計和導航的 404 頁面,而非預設的錯誤提示。
維護公告引導:在系統維護期間,將 503 等伺服器錯誤重新導向至維護公告頁,告知使用者預計恢復。
錯誤處理服務對接:將 5xx 服務端錯誤重新導向到專門的錯誤處理頁面,便於統一展示故障資訊和連絡方式。
邊緣安全加速 ESA的錯誤碼重新導向功能可以在來源站點或邊緣節點返回指定 HTTP 錯誤狀態代碼時,通過 302 重新導向將請求跳轉到配置的自訂 URL。通過錯誤碼重新導向,可以:
展示自有品牌設計和內容的錯誤頁面,提升使用者體驗
將錯誤響應重新導向到自訂頁面、維護通知或錯誤處理服務
使用自訂匹配運算式將規則應用於特定流量
工作原理
當訪問者請求觸發了已配置的錯誤狀態代碼時,ESA執行以下操作:
請求回源訪問來源站點伺服器。
如果響應狀態代碼與已啟用規則中配置的錯誤碼匹配,系統將攔截該響應。
系統返回 302 重新導向到規則中指定的 URL。
支援的錯誤碼
錯誤碼重新導向支援以下 HTTP 狀態代碼:
狀態代碼 | 描述 |
400 | 錯誤請求(Bad Request) |
403 | 禁止訪問(Forbidden) |
404 | 未找到(Not Found) |
405 | 方法不允許(Method Not Allowed) |
414 | URI 過長(URI Too Long) |
416 | 請求範圍不滿足(Range Not Satisfiable) |
500 | 伺服器內部錯誤(Internal Server Error) |
501 | 未實現(Not Implemented) |
502 | 網關錯誤(Bad Gateway) |
503 | 服務不可用(Service Unavailable) |
504 | 網關逾時(Gateway Timeout) |
使用限制
每條規則最多可配置 11 個錯誤碼重新導向條目,每個支援的狀態代碼對應一個條目。
重新導向 URL 必須是完整的 URL,以
http://或https://開頭。錯誤碼重新導向規則與請求重新導向規則共用同一配額。頁面顯示的配額為兩種規則類型的合計上限。
規則按從上到下的順序匹配。第一個匹配的規則生效,後續規則不再匹配。
每條規則中每個狀態代碼只能出現一次。
操作步驟
在ESA控制台選擇網站管理,在網站列單擊目標網站。
在左側導覽列,選擇。
選擇錯誤碼重新導向頁簽,單擊新增規則。
在新增錯誤碼重新導向規則頁面,填寫以下配置項後單擊確定:
驗證規則
建立規則後,可以通過以下步驟驗證規則是否按預期工作:
使用 curl 命令發送測試請求,觸發已配置的錯誤狀態代碼。例如,請求一個不存在的資源以觸發 404 錯誤:
curl -I http://www.example.com/nonexistent-page檢查響應。預期返回 302 狀態代碼,且
Location頭指向配置的自訂 URL:HTTP/1.1 302 Found Location: https://www.example.com/error-pages/404.html跟隨重新導向,確認自訂錯誤頁面正常載入:
curl -vL http://www.example.com/nonexistent-page
常見問題
規則對來源站點錯誤還是邊緣節點錯誤生效?
規則僅針對來源站點伺服器返回的錯誤碼生效。
如果多條規則匹配同一請求會怎樣?
規則按從上到下的順序匹配。第一條匹配的規則生效,評估隨即終止。請將更具體的規則排在通用規則之前。
錯誤碼重新導向規則與請求重新導向規則是否共用配額?
是。兩種規則共用同一重新導向規則配額。重新導向規則頁面顯示的配額反映了兩種規則類型的合計數量。