

# 配置自定义错误文档
<a name="CustomErrorDocSupport"></a>

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

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

**Topics**
+ [

## Amazon S3 HTTP 响应代码
](#s3-http-error-codes)
+ [

## 配置自定义错误文档
](#custom-error-document)

## Amazon S3 HTTP 响应代码
<a name="s3-http-error-codes"></a>

下表列出了出现错误时 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-Since`、`If-Unmodified-Since`、`If-Match` 和/或 `If-None-Match` 来确定请求的对象与客户端具有的缓存副本是否相同。如果对象相同，网站端点将返回 **304 Not Modified** 响应。  | 
| 400 Malformed Request |  当用户尝试通过错误的地区端点访问存储桶时，网站端点的响应包含 **400 Malformed Request**。  | 
| 403 禁止访问 |  当用户请求转换为不可公开读取的对象时，网站端点的响应包含 **403 禁止访问**。对象所有者必须使用存储桶策略或 ACL 使该对象公开可读。  | 
| 404 未找到 |  由于以下原因，网站端点的响应包含 **404 Not Found**： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/CustomErrorDocSupport.html) 您可以创建为 **404 Not Found** 返回的自定义文档。确保该文档已上传到配置为网站的存储桶，且网站托管配置已设置为使用该文档。 有关 Amazon S3 如何将 URL 当作对对象或索引文档的请求的信息，请参阅 [配置索引文档](IndexDocumentSupport.md)。  | 
| 500 Service Error |  当出现内部服务器错误时，网站端点的响应包含 **500 Service Error**。  | 
| 503 服务不可用 |  当 Amazon S3 确定您需要降低请求率时，网站端点的响应包含 **503 Service Unavailable（503 服务不可用）**。  | 

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

![\[“403 Forbidden”(403 禁止访问) 错误消息示例\]](http://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/images/WebsiteErrorExample403.png)


## 配置自定义错误文档
<a name="custom-error-document"></a>

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

要使用 S3 控制台配置自定义错误文档，请执行以下步骤。您还可以使用 REST API、AWS SDK、AWS CLI 或 CloudFormation 配置错误文档。有关更多信息，请参阅下列内容：
+ 《Amazon Simple Storage Service API 参考》**中的 [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html)
+ 《*CloudFormation 用户指南*》中的 [AWS::S3::Bucket WebsiteConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-websiteconfiguration.html)
+ 《*AWS CLI 命令参考*》中的 [put-bucket-website](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-website.html)

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

**要配置错误文档**

1. 创建错误文档，例如 `404.html`。

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

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

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**通用存储桶**。

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

1. 为您的存储桶启用静态网站托管，并输入错误文档的确切名称（例如 `404.html`）。有关更多信息，请参阅[启用网站托管](EnableWebsiteHosting.md)和[配置自定义错误文档](#CustomErrorDocSupport)。

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

1. 要将错误文档上传到存储桶，请执行以下操作之一：
   + 将错误文档文件拖放到控制台存储桶列表中。
   + 选择**上传**，然后按照提示选择并上传索引文件。

   如需分步指导，请参阅 [上传对象](upload-objects.md)。