變更傳回的回應碼 CloudFront - Amazon CloudFront

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

變更傳回的回應碼 CloudFront

您可以設定 CloudFront 為將不同於從來源CloudFront 接收到的HTTP狀態碼傳回給檢視器。例如,如果您的來源傳回 500 狀態碼至CloudFront,您可能想 CloudFront 要將自訂錯誤頁面和 200 狀態碼 (OK) 傳回給檢視器。您可能希望 CloudFront 將狀態碼傳回給檢視器的原因有很多種,這與原因不同於原始伺服器返回的狀態碼CloudFront:

  • 某些網際網路裝置 (例如,某些防火牆和公司 Proxy) 會攔截 HTTP 4xx 和 5xx 狀態碼,並防止回應傳回給檢視者。在此案例中,如果您替換 200,回應不會攔截。

  • 如果您不關心區分不同的客戶端錯誤或服務器錯誤,則可以指定400500作為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