34

有没有办法让 S3 默认为 index.html 页面?例如:我的存储桶对象列表:

/index.html
/favicon.ico
/images/logo.gif

调用www.example.com/index.html效果很好!但是,如果要调用www.example.com/,我们会得到一个 403 或一个列出 XML 文档的 REST 对象,具体取决于存储桶级 ACL 的配置方式。

所以,问题是:有没有办法让 index.html 功能与托管在 S3 上的内容一起使用?

4

7 回答 7

70

对于 3 年后仍在为此苦苦挣扎的人,让我补充一些重要信息:

您网站的 URL(以及您必须将 DNS 指向的 URL)不是

<bucket_name>.s3-us-west-2.amazonaws.com, 但

<bucket_name>.s3-website-us-west-2.amazonaws.com.

如果您使用第一个,无论您如何配置Index 文档,它都不会按预期工作。

举一个具体的例子,考虑:

要获取您的真实网站地址,请转到您的S3 管理控制台,选择目标存储桶,然后Properties选择Static Website Hosting。它将显示有效的网站 URL。

于 2014-06-24T03:17:37.677 回答
37

Amazon S3 现在支持索引文档

存储桶的索引文档可以设置为类似index.html. 当访问站点的根目录或包含该名称的文档的子目录时,将返回该文档。

使用 aws cli 非常容易:

aws s3 website $MY_BUCKET_NAME --index-document index.html

您可以从 AWS 管理控制台设置索引文档:

在此处输入图像描述

于 2011-02-18T10:22:32.553 回答
4

您可以通过 Amazon CloudFront链接轻松解决。在 Amazon CloudFront,您可以修改根对象。您可以在此处下载管理器:m1.mycloudbuddy.com/downloads.html。

于 2010-12-17T21:30:22.673 回答
3

由于很久以来,这个问题被问到,并且 Amazon S3 改变了他们的界面。我想用更新的截图来回答。

我们需要为 S3 启用“静态网络托管”以用作网络托管。- 转到属性 -> 单击静态 Web 托管 -> 选择“使用此存储桶托管网站” - 输入索引文档(默认为 index.html)、错误文档和重定向规则(如果有)。 选择静态网络托管

使用这个桶来托管一个网站

正如Stack Overflow 上的这个答案所回答的那样,网络托管链接将是:http ://bucket-name.s3-website-region.amazonaws.com

于 2017-06-15T18:05:06.743 回答
2

我建议从 2006 年开始阅读这个线程(在 Amazon Web 服务开发人员连接上)。似乎没有简单的解决方案。

于 2008-08-26T12:47:37.357 回答
2

是的。使用 AWS Cloudfront 可让您分配默认文件。

于 2010-08-09T01:08:19.643 回答
0

你可以使用 dns webforwards 和 cloaking 来做到这一点。只需转发到 index.html 的完整路径

www.example.com 转发到http://www.example.com.s3.amazonaws.com并确保隐藏输出。

于 2010-05-21T06:24:47.850 回答