

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

# 針對特定的 HTTP 狀態碼建立自訂錯誤頁面
<a name="creating-custom-error-pages"></a>

若您想要顯示自訂錯誤訊息而非預設訊息，比方與您的網站其餘部分使用相同格式設定的頁面，則可以讓 CloudFront 向檢視器傳回包含自訂錯誤訊息的物件 (如 HTML 檔案)。

若要指定您想要傳回的檔案，以及指明檔案應該傳回的錯誤，您可以更新 CloudFront 分發以指定這些值。如需詳細資訊，請參閱 [設定錯誤回應行為](custom-error-pages-procedure.md)。

例如，以下是自訂錯誤頁面：

![\[custom AWS 404 頁面範例的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudFront/latest/DeveloperGuide/images/custom-error-page-aws-404-example.png)


您可以為每個支援的 HTTP 狀態碼指定不同的物件，或您可以為所有支援的狀態碼使用相同的物件。您可以選擇為某些狀態碼指定自訂錯誤頁面，而不是為其他狀態碼指定。

由於各種原因，透過 CloudFront 提供的物件無法使用。這些分為兩大類：
+ *用戶端錯誤*顯示請求有問題。例如，有指定名稱的物件不可用，或使用者沒有在 Amazon S3 儲存貯體中取得物件所需的許可。當用戶端發生錯誤，原始伺服器會在 4xx 範圍中傳回 HTTP 狀態碼給 CloudFront。
+ *伺服器錯誤*顯示原始伺服器有問題。例如，HTTP 伺服器是忙碌或不可用。當伺服器發生錯誤，您的原始伺服器會在 5xx 範圍中傳回 HTTP 狀態碼至 CloudFront，或特定期間內 CloudFront 不從您的原始伺服器取得回應並假設一個 504 狀態碼 (閘道逾時)。

針對 HTTP 狀態碼，CloudFront 可以傳回自訂錯誤頁面，其中包含下列項目：
+ 400, 403, 404, 405, 414, 416
+ 500、501、502、503、504
**備註**  
如果 CloudFront 偵測到請求可能不安全，CloudFront 會傳回 400 (錯誤請求) 錯誤，而不是自訂錯誤頁面。
您可以建立自訂錯誤頁面以取得 HTTP 狀態碼 416 (不滿足請求範圍)，當原始伺服器傳回狀態碼 416 給 CloudFront 時，您可以變更 CloudFront 傳回給檢視器的 HTTP 狀態碼 如需詳細資訊，請參閱[變更 CloudFront 傳回的回應碼](custom-error-pages-response-code.md)。然而，CloudFront 不會快取狀態碼 416 回應，因此，即使您為狀態碼 416 指定 **Error Caching Minimum TTL** (快取最小 TTL 時發生錯誤) 的值，CloudFront 也不會使用它。
在某些情況下，CloudFront 不會傳回 HTTP 503 狀態碼的自訂錯誤頁面，即使您將 CloudFront 設定為此。如果 CloudFront 錯誤碼為 `Capacity Exceeded` 或 `Limit Exceeded`，則 CloudFront 會將 503 狀態碼傳回給檢視器，而不使用您的自訂錯誤頁面。
如果您建立了自訂錯誤頁面，CloudFront 將針對下列回應代碼傳回 `Connection: close` 或 `Connection: keep-alive`：  
CloudFront 會對以下狀態碼傳回 `Connection: close`：400、405、414、416、500、501
CloudFront 會對以下狀態碼傳回 `Connection: keep-alive`：403、404、502、503、504

如需 CloudFront 如何從原始伺服器處理錯誤回應的詳細說明，請參閱 [CloudFront 如何處理來自原始伺服器的 HTTP 4xx 和 5xx 狀態碼](HTTPStatusCodes.md)。