

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

# 變更 CloudFront 傳回的回應碼
<a name="custom-error-pages-response-code"></a>

您可以將 CloudFront 設定為傳回不同 HTTP 狀態碼給檢視器，而非 CloudFront 從原始伺服器接收的狀態碼。例如，如果您的原始伺服器傳回 500 狀態碼到 CloudFront，您可能會希望 CloudFront 傳回自訂錯誤頁面和 200 狀態碼 (OK) 給檢視器。基於各種原因，您想要讓 CloudFront 傳回狀態碼到檢視器，該檢視器與原始伺服器傳回到 CloudFront 的檢視器不同：
+ 有些網際網路裝置 (例如，一些防火牆和公司代理) 會攔截 HTTP 4xx 和 5xx 狀態碼並禁止回應傳回給檢視器。在此案例中，如果您替換 `200`，回應不會攔截。
+ 如果您不在意區別不同的用戶端錯誤或伺服器錯誤，您可以指定 `400` 或 `500` 作為 CloudFront 為所有 4xx 或 5xx 狀態碼傳回的值。
+ 您會希望傳回 `200` 狀態碼 (OK) 與靜態網站，如此您的客戶便不會知道您網站已關閉。

如果您啟用 [CloudFront 標準日誌](AccessLogs.md)並設定 CloudFront 來變更回應中的 HTTP 狀態碼，則日誌中的 `sc-status` 欄位值會包含您指定的狀態碼。不過，`x-edge-result-type` 資料行的值不會受到影響。它包含來自原始伺服器回應的結果類型。例如，當原始伺服器傳回 `200` (找不到) 給 CloudFront 時，假設您配置 CloudFront 傳回 `404` 的狀態碼給檢視器。當原始伺服器回應 `404` 狀態碼的請求時，在日誌中 `sc-status` 資料行的值會是 `200`，但 `x-edge-result-type` 資料行的值則會是 `Error`。

您可以配置 CloudFront 傳回下列任何 HTTP 狀態碼以及自訂錯誤頁面：
+ 200
+ 400, 403, 404, 405, 414, 416
+ 500、501、502、503、504