本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
變更傳回的回應碼 CloudFront
您可以設定 CloudFront 為將不同於從來源CloudFront 接收到的HTTP狀態碼傳回給檢視器。例如,如果您的來源傳回 500 狀態碼至CloudFront,您可能想 CloudFront 要將自訂錯誤頁面和 200 狀態碼 (OK) 傳回給檢視器。您可能希望 CloudFront 將狀態碼傳回給檢視器的原因有很多種,這與原因不同於原始伺服器返回的狀態碼CloudFront:
-
某些網際網路裝置 (例如,某些防火牆和公司 Proxy) 會攔截 HTTP 4xx 和 5xx 狀態碼,並防止回應傳回給檢視者。在此案例中,如果您替換
200
,回應不會攔截。 -
如果您不關心區分不同的客戶端錯誤或服務器錯誤,則可以指定
400
或500
作為CloudFront 返回所有 4xx 或 5xx 狀態碼的值。 -
您會希望傳回
200
狀態碼 (OK) 與靜態網站,如此您的客戶便不會知道您網站已關閉。
如果您啟用CloudFront 標準記錄檔,並設定CloudFront 為變更回應中的HTTP狀態碼,記錄檔中的sc-status
欄值會包含您指定的狀態碼。不過,x-edge-result-type
資料行的值不會受到影響。它包含來自原始伺服器回應的結果類型。例如,假設您設定 CloudFront 為在原始位置傳回 404
(未找到) 時,200
將的狀態碼傳回給檢視器 CloudFront。當原始伺服器回應 404
狀態碼的請求時,在日誌中 sc-status
資料行的值會是 200
,但 x-edge-result-type
資料行的值則會是 Error
。
您可以設定 CloudFront 為傳回下列任一HTTP狀態碼以及自訂錯誤頁面:
-
200
-
400, 403, 404, 405, 414, 416
-
500、501、502、503、504