有没有办法让 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 上的内容一起使用?
有没有办法让 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 上的内容一起使用?
对于 3 年后仍在为此苦苦挣扎的人,让我补充一些重要信息:
您网站的 URL(以及您必须将 DNS 指向的 URL)不是
<bucket_name>.s3-us-west-2.amazonaws.com
, 但
<bucket_name>.s3-website-us-west-2.amazonaws.com
.
如果您使用第一个,无论您如何配置Index 文档,它都不会按预期工作。
举一个具体的例子,考虑:
AccessDenied
.要获取您的真实网站地址,请转到您的S3 管理控制台,选择目标存储桶,然后Properties
选择Static Website Hosting
。它将显示有效的网站 URL。
Amazon S3 现在支持索引文档
存储桶的索引文档可以设置为类似index.html
. 当访问站点的根目录或包含该名称的文档的子目录时,将返回该文档。
使用 aws cli 非常容易:
aws s3 website $MY_BUCKET_NAME --index-document index.html
您可以从 AWS 管理控制台设置索引文档:
您可以通过 Amazon CloudFront链接轻松解决。在 Amazon CloudFront,您可以修改根对象。您可以在此处下载管理器:m1.mycloudbuddy.com/downloads.html。
由于很久以来,这个问题被问到,并且 Amazon S3 改变了他们的界面。我想用更新的截图来回答。
我们需要为 S3 启用“静态网络托管”以用作网络托管。- 转到属性 -> 单击静态 Web 托管 -> 选择“使用此存储桶托管网站” - 输入索引文档(默认为 index.html)、错误文档和重定向规则(如果有)。
正如Stack Overflow 上的这个答案所回答的那样,网络托管链接将是:http ://bucket-name.s3-website-region.amazonaws.com
我建议从 2006 年开始阅读这个线程(在 Amazon Web 服务开发人员连接上)。似乎没有简单的解决方案。
是的。使用 AWS Cloudfront 可让您分配默认文件。
你可以使用 dns webforwards 和 cloaking 来做到这一点。只需转发到 index.html 的完整路径
www.example.com 转发到http://www.example.com.s3.amazonaws.com并确保隐藏输出。