

# 配置索引文档
<a name="IndexDocumentSupport"></a>

启用网站托管时，还必须配置和上传索引文档。*索引文档* 是在对网站的根或任何子文件夹发出请求时 Amazon S3 返回的网页。例如，如果用户在浏览器中输入 `http://www.example.com`，则该用户没有请求任何特定页面。在这种情况下，Amazon S3 将提供索引文档，该文档有时也可称为*默认页面*。

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

根级 URL 的尾部斜杠是可选的。例如，如果您将具有 `index.html` 的网站配置为索引文档，以下任意一个 URL 将返回 `index.html`。

```
1. http://example-bucket.s3-website.Region.amazonaws.com/
2. http://example-bucket.s3-website.Region.amazonaws.com
```

有关 Amazon S3 网站端点的更多信息，请参阅 [网站端点](WebsiteEndpoints.md)。

## 索引文档和文件夹
<a name="IndexDocumentsandFolders"></a>

在 Amazon S3 中，存储桶是对象的平面容器。它不会像计算机上的文件系统那样提供任何分层组织。但是，您可以通过使用表示文件夹结构的对象键名创建逻辑层级结构。

例如，考虑具有三个对象（具有以下键名）的存储桶。虽然它们没有按任何物理分层组织进行存储，但您可以从键名推断以下逻辑文件夹结构：
+ `sample1.jpg` — 对象位于存储桶的根级。
+ `photos/2006/Jan/sample2.jpg` — 对象位于 `photos/2006/Jan` 子文件夹中。
+ `photos/2006/Feb/sample3.jpg` — 对象位于 `photos/2006/Feb` 子文件夹中。

在 Amazon S3 控制台中，您还可以在存储桶中创建文件夹。例如，您可以创建名为 `photos` 的文件夹。您可以将对象上传到存储桶或该存储桶中的 `photos` 文件夹。如果您将对象 `sample.jpg` 添加到存储桶，则键名为 `sample.jpg`。如果您将对象上传到 `photos` 文件夹，则对象键名为 `photos/sample.jpg`。

如果您在存储桶中创建了文件夹结构，则您必须在每个级别上都具有索引文档。在每个文件夹中，索引文档必须具有相同的名称，例如，`index.html`。当用户指定类似于文件夹查找的 URL 时，是否存在尾部斜杠将决定网站的行为。例如，以下具有尾部反斜杠的 URL 将返回 `photos/index.html` 索引文档。

```
1. http://bucket-name.s3-website.Region.amazonaws.com/photos/
```

但是，如果您从之前的 URL 排除了尾部斜杠，则 Amazon S3 将首先在存储段中查找对象 `photos`。如果未找到 `photos` 对象，它将搜索索引文档 `photos/index.html`。如果找到该文档，则 Amazon S3 将返回 `302 Found` 消息并指向 `photos/` 密钥。对于对 `photos/` 的后续请求，Amazon S3 将返回 `photos/index.html`。如果未找到索引文档，Amazon S3 将返回错误。

## 配置索引文档
<a name="configuring-index-document"></a>

要使用 S3 控制台配置索引文档，请使用以下步骤。您还可以使用 REST API、AWS SDK、AWS CLI 或 CloudFormation 配置索引文档。

**注意**  
在启用版本控制的存储桶中，您可以上传 `index.html` 的多个副本，但只解析为最新的版本。有关使用 S3 版本控制的更多信息，请参阅[使用 S3 版本控制保留对象的多个版本](Versioning.md)。

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

**配置索引文档**

1. 创建 `index.html` 文件。

   如果您没有 `index.html` 文件，则可以使用以下 HTML 创建一个：

   ```
   <html xmlns="http://www.w3.org/1999/xhtml" >
   <head>
       <title>My Website Home Page</title>
   </head>
   <body>
     <h1>Welcome to my website</h1>
     <p>Now hosted on Amazon S3!</p>
   </body>
   </html>
   ```

1. 将索引文件保存在本地。

   索引文档文件名必须与您在**静态网站托管**对话框中输入的索引文档名称完全匹配。索引文档名称区分大小写。例如，如果在**静态网站托管**对话框中为**索引文档**名称输入 `index.html`，则索引文档文件名也必须是 `index.html`，而不是 `Index.html`。

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

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

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

1. 为您的存储桶启用静态网站托管，并输入索引文档的确切名称（例如 `index.html`）。有关更多信息，请参阅 [启用网站托管](EnableWebsiteHosting.md)。

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

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

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

1. （可选）将其他网站内容上传到您的存储桶。

接下来，您必须设置用于访问网站的权限。有关信息，请参阅 [设置访问网站的权限](WebsiteAccessPermissionsReqd.md)。

还可以有选择性地配置[错误文档](CustomErrorDocSupport.md)、[Web 流量日志记录](LoggingWebsiteTraffic.md)或[重定向](how-to-page-redirect.md)。