Amazon CloudFront
开发人员指南 (API 版本 2016-09-29)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

更改 CloudFront 返回的响应代码

您可以选择 CloudFront 随自定义错误页面返回的 HTTP 状态代码作为给定的 HTTP 状态代码。例如,如果源向 CloudFront 返回 500 状态代码,您可能希望 CloudFront 向查看器返回自定义错误页面和 200 状态代码 (OK)。出于多种原因,您可能希望 CloudFront 向查看器返回不同于源返回到 CloudFront 的状态代码:

  • 一些 Internet 设备 (例如,一些防火墙和企业代理) 会拦截 HTTP 4xx 和 5xx 状态代码,防止响应返回到查看器。如果替换为 200,则通常不会拦截响应。

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

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

如果您启用 CloudFront 访问日志并配置 CloudFront 以更改响应中的 HTTP 状态代码,访问日志中的 sc-status 列的值将包含您指定的状态代码。但是,x-edge-result-type 列的值不受影响;它仍包含来自源的响应的结果类型。例如,假设您将 CloudFront 配置为在源向 CloudFront 返回 404 (Not Found) 时向查看器返回状态代码 200。当源使用 404 状态代码响应请求时,访问日志的 sc-status 列中的值将为 200,但 x-edge-result-type 列中的值将为 Error

您可以将 CloudFront 配置为随自定义错误页面返回以下任意 HTTP 状态代码:

  • 200

  • 400、403、404、405、414、416

  • 500、501、502、503、504