

# 更改 CloudFront 返回的响应代码
<a name="custom-error-pages-response-code"></a>

您可以配置 CloudFront 向查看器返回的 HTTP 状态代码，使其与 CloudFront 从源接收的状态代码不相同。例如，如果源向 CloudFront 返回 500 状态代码，您可能希望 CloudFront 向查看器返回自定义错误页面和 200 状态代码（正常）。出于多种原因，您可能希望 CloudFront 向查看器返回不同于源返回到 CloudFront 的状态代码：
+ 一些互联网设备（例如，一些防火墙和企业代理）会拦截 HTTP 4xx 和 5xx 状态代码，防止响应返回到查看器。在这种情况下，如果您替换 `200`，就不会截获响应。
+ 如果您不希望区分不同的客户端错误或服务器错误，可以将 CloudFront 为所有 4xx 或 5xx 状态代码返回的值指定为 `400` 或 `500`。
+ 您可能希望返回 `200` 状态代码（正常）和静态网站，确保客户不知道网站宕机。

如果您启用 [CloudFront 标准日志](AccessLogs.md)并且将 CloudFront 配置为更改响应中的 HTTP 状态代码，则标准日志中 `sc-status` 列的值将包含您指定的状态代码。但是，`x-edge-result-type` 列的值不受影响。该值包含源响应的结果类型。例如，假设您将 CloudFront 配置为在源将 `200`（未找到）返回到 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