更改 CloudFront 返回的响应代码 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

更改 CloudFront 返回的响应代码

您可以配置 CloudFront 向查看器返回的 HTTP 状态代码,使其与 CloudFront 从源接收的状态代码不相同。例如,如果源向 CloudFront 返回 500 状态代码,您可能希望 CloudFront 向查看器返回自定义错误页面和 200 状态代码(正常)。出于多种原因,您可能希望 CloudFront 向查看器返回不同于源返回到 CloudFront 的状态代码:

  • 一些互联网设备(例如,一些防火墙和企业代理)会拦截 HTTP 4xx 和 5xx 状态代码,防止响应返回到查看器。在这种情况下,如果您替换 200,就不会截获响应。

  • 如果您不希望区分不同的客户端错误或服务器错误,可以将 CloudFront 为所有 4xx 或 5xx 状态代码返回的值指定为 400500

  • 您可能希望返回 200 状态代码(正常)和静态网站,确保客户不知道网站宕机。

如果您启用 CloudFront 标准日志并且将 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