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

为特定 HTTP 状态代码创建自定义错误页面

如果您希望显示自定义错误消息而不是默认消息(例如,一个页面使用与网站的其他部分相同的格式),您可以让 CloudFront 向查看器返回包含自定义错误消息的对象(例如,HTML 文件)。——

要指定要返回的特定文件以及应为此文件返回的错误,请更新您的 CloudFront 分配以指定这些值。有关更多信息,请参阅 自定义错误页面和错误缓存 主题中的 您创建或更新分配时指定的值

例如,以下是自定义的错误消息:


				AWS 404 页面。

您可以为每个支持的 HTTP 状态代码指定一个不同的对象,也可以对所有支持的状态代码使用同一个对象。还可以选择为一些状态代码指定对象,而不为另外一些状态代码指定对象。

您通过 CloudFront 提供的对象出于各种原因可能不可用。可将这些原因归为以下两大类:

  • 客户端错误表示请求出现问题。例如,具有指定名称的对象不可用,或用户不具有获取您 Amazon S3 存储桶中的对象所需的权限。当出现客户端错误时,源会向 CloudFront 返回一个 400 区间内的 HTTP 状态代码。

  • 服务器错误表示源服务器出现问题。例如,HTTP 服务器繁忙或不可用。在出现服务器错误时,源服务器将向 CloudFront 返回一个 500 范围的 HTTP 状态代码,或者 CloudFront 在某一时间段内未从源服务器中收到响应,并显示 504 状态代码 (Gateway Timeout)。

CloudFront 可以为其返回自定义错误页面的 HTTP 状态代码包含以下各项:

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

  • 500、501、502、503、504

注意

您可以为 HTTP 状态代码 416 (Requested Range Not Satisfiable) 创建自定义错误页面,并更改在源向 CloudFront 返回状态代码 416 时 CloudFront 向查看器返回的 HTTP 状态代码。(有关更多信息,请参阅 更改 CloudFront 返回的响应代码。) 不过,CloudFront 不缓存状态代码 416 响应,因此,您可以为状态代码 416 指定错误缓存最小 TTL 值,但 CloudFront 不使用该值。

有关 CloudFront 如何处理来自源的错误响应的详细说明,请参阅CloudFront 如何处理和缓存来自源的 HTTP 4xx 和 5xx 状态代码