有没有办法在S3上托管内容的index.html功能?

时间:2008-08-26 12:30:19

标签: amazon-s3 amazon-web-services

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

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

致电 www.example.com/ index.html 效果很好!但是如果要打电话给 www.example.com / ,我们要么根据桶级ACL的配置方式获得列出XML文档的403或REST对象。

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

7 个答案:

答案 0 :(得分:49)

对于那些在3年后仍在努力解决这个问题的人,让我补充一些重要信息:

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

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

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

如果您使用第一个,则无论您配置Index document多少,它都无法按预期工作。

有关具体示例,请考虑:

要获取真实的网站地址,请转到S3 Management Console,选择目标广告连播,然后选择Properties,然后选择Static Website Hosting。它将显示可以使用的网站URL。

答案 1 :(得分:36)

Amazon S3现在支持Index Documents

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

使用aws cli非常容易:

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

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

enter image description here

答案 2 :(得分:4)

您可以通过Amazon CloudFront link轻松解决此问题。在Amazon CloudFront中,您可以修改根对象。你可以在这里下载经理:m1.mycloudbuddy.com/downloads.html。

答案 3 :(得分:3)

因为很长一段时间,这个问题被问到,而且Amazon S3改变了他们的界面。我想回答更新的截图。

我们需要为S3启用“静态网络托管”作为虚拟主机。 - 转到属性 - &gt;点击静态网站托管 - &gt;选择“使用此存储桶托管网站” - 输入索引文档(默认情况下为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

答案 4 :(得分:2)

我建议从2006年开始阅读this thread(在亚马逊网络服务开发人员连接上)。似乎没有简单的解决方案。

答案 5 :(得分:2)

是。使用AWS Cloudfront可以分配默认文件。

答案 6 :(得分:0)

你可以使用dns webforwards和隐藏真实内容来做到这一点。只需转发到index.html的完整路径

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