配置自定义错误文档 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置自定义错误文档

将存储桶配置为静态网站后,当出现错误时,Amazon S3 返回 HTML 错误文档。您可以选择使用自定义错误文档配置存储桶,以便在发生错误时 Amazon S3 返回该文档。

注意

当出现错误时,某些浏览器将显示自己的错误消息,而忽略 Amazon S3 返回的错误文档。例如,当出现 HTTP 404 Not Found (HTTP 404 未找到) 错误时,Google Chrome 可能忽略 Amazon S3 返回的错误文档并显示自己的错误。

Amazon S3 HTTP 响应代码

下表列出了出现错误时 Amazon S3 返回的 HTTP 响应代码的子集。

HTTP 错误代码 描述
301 永久移动 当用户将请求直接发送到 Amazon S3 网站端点(http://s3-website.Region.amazonaws.com/)时,Amazon S3 将返回 301 Moved Permanently(301 永久移动)响应并将这些请求重定向到 https://aws.amazon.com/s3/
302 Found (302 已找到)

当 Amazon S3 接收对不包含尾部斜杠的键 x (http://bucket-name.s3-website.Region.amazonaws.com/x) 的请求时,它首先查找键名为 x 的对象。如果未找到对象,则 Amazon S3 确定该请求是针对子文件夹 x 发出的,并通过在末尾添加斜杠重定向请求并返回 302 Found (302 已找到)

304 Not Modified (304 未修改)

Amazon S3 使用请求标头 If-Modified-SinceIf-Unmodified-SinceIf-Match 和/或 If-None-Match 来确定请求的对象与客户端具有的缓存副本是否相同。如果对象相同,网站端点将返回 304 Not Modified 响应。

400 Malformed Request

当用户尝试通过错误的地区端点访问存储桶时,网站端点的响应包含 400 Malformed Request

403 禁止访问

当用户请求转换为不可公开读取的对象时,网站端点的响应包含 403 禁止访问。对象所有者必须使用存储桶策略或 ACL 使该对象公开可读。

404 未找到

由于以下原因,网站端点的响应包含 404 Not Found

  • Amazon S3 确定网站 URL 引用了不存在的对象键。

  • Amazon S3 推断该请求针对不存在的索引文档。

  • 在 URL 中指定的存储桶不存在。

  • URL 中指定的存储桶存在,但未配置为网站。

您可以创建为 404 Not Found 返回的自定义文档。确保该文档已上传到配置为网站的存储桶,且网站托管配置已设置为使用该文档。

有关 Amazon S3 如何将 URL 当作对对象或索引文档的请求的信息,请参阅 配置索引文档

500 Service Error

当出现内部服务器错误时,网站端点的响应包含 500 Service Error

503 服务不可用

当 Amazon S3 确定您需要降低请求率时,网站端点的响应包含 503 Service Unavailable(503 服务不可用)

对于其中每个错误,Amazon S3 都返回一条预定义的 HTML 消息。以下是对 403 Forbidden 响应返回的 HTML 消息示例。


					“403 Forbidden”(403 禁止访问) 错误消息示例

配置自定义错误文档

将存储桶配置为静态网站时,您可以提供包含用户友好错误消息和其他帮助的自定义错误文档。Amazon S3 将仅为 HTTP 4XX 类的错误代码返回您的自定义错误文档。

要使用 S3 控制台配置自定义错误文档,请执行以下步骤。您还可以使用 REST API、Amazon SDK、Amazon CLI 或 Amazon CloudFormation 配置错误文档。有关更多信息,请参阅下列内容:

当您为存储桶启用静态网站托管时,请输入错误文档的名称(例如,404.html)。为存储桶启用静态网站托管后,您可以将具有此错误文档名称的 HTML 文件上传到存储桶。

要配置错误文档
  1. 创建错误文档,例如 404.html

  2. 将错误文档文件保存在本地。

    错误文档名称区分大小写,必须与启用静态网站托管时输入的名称完全匹配。例如,如果在静态网站托管对话框中为错误文档名称输入 404.html,则错误文档文件名也必须是 404.html

  3. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  4. 存储桶 列表中,选择要用于托管静态网站的存储桶的名称。

  5. 为您的存储桶启用静态网站托管,并输入错误文档的确切名称(例如 404.html)。有关更多信息,请参阅 启用网站托管配置自定义错误文档

    启用静态网站托管后,继续执行步骤 6。

  6. 要将错误文档上传到存储桶,请执行以下操作之一:

    • 将错误文档文件拖放到控制台存储桶列表中。

    • 选择上传,然后按照提示选择并上传索引文件。

    如需分步指导,请参阅 上传对象