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

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

致电 www.example.com/索引.html 效果很好!但如果有人打电话 www.example.com/ 我们会得到 403 或列出 XML 文档的 REST 对象,具体取决于存储桶级别 ACL 的配置方式。

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

有帮助吗?

解决方案

Amazon S3 现在支持 索引文件

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

使用 aws cli 非常容易做到:

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

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

enter image description here

其他提示

对于三年后仍在为此苦苦挣扎的人们,让我添加一些重要信息:

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

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

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

如果您使用第一个,无论您配置多少,它都不会按预期工作 索引文件.

对于具体示例,请考虑:

要获取您的真实网站地址,请访问您的 S3管理控制台, ,选择目标桶,然后 Properties, , 然后 Static Website Hosting. 。它将显示可用的网站 URL。

您可以通过 Amazon CloudFront 轻松解决该问题 关联. 。在 Amazon CloudFront,您可以修改根对象。您可以在这里下载管理器:m1.mycloudbuddy.com/downloads.html。

因为已经很长时间了,这个问题被问到,并且 Amazon S3 改变了他们的界面。我想用更新的屏幕截图来回答。

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

use-this-bucket-to-host-a-website

正如中所回答的 https://stackoverflow.com/a/24377823/3086531, ,虚拟主机链接将是

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 并确保隐藏输出。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top