亚马逊S3静态网站托管无法使用自定义域名(点问题)

3
我按照S3文档的指导,在那里托管了一个静态网站。使用S3提供的域名一切正常,我可以访问“examplebucket.s3-website-us-east-1.amazonaws.com”。
然而,当我转发我的自定义域名时,域名提供商在我的域名末尾添加了一个点,然后就像我正在访问“examplebucket.s3-website-us-east-1.amazonaws.com.”,这将不起作用,因为Amazon认为您正在访问不同的地址。然后给了我404错误。
有没有解决此问题的方法?或者我应该在S3中设置哪个地方?

我认为你可能诊断错误了,因为引用与CNAME本身定义的区域不同的域名的CNAME...必须以点结尾。这是正常的,不应该破坏任何东西。 - Michael - sqlbot
1
另外...您的网站主机名(您正在“转发”的那个)必须与存储桶的名称完全相同。网站“example.com”只能在名为“example.com”的存储桶中工作,而网站“www.example.com”只能在名为“www.example.com”的存储桶中工作...两者不能互换,并且您无法使用DNS和S3静态网站托管将域名成功映射到其他名称的存储桶。这是您正在做的吗? - Michael - sqlbot
1个回答

2
我知道这个问题的时间有点晚了,但可能还有其他人遇到同样的问题(比如我上周)。我正在尝试在CloudFormation中创建路由时遇到相同的问题。我想将我的域名www.example.com重定向到example-bucket.s3-website-eu-west-1.amazonaws.com
结果发现无法将其重定向到任意存储桶。存储桶名称必须与您要别名的域名相同。因此,如果您要重定向www.example.com,则存储桶名称必须是www.example.com,URL必须是www.example.com.s3-website-eu-west-1.amazonaws.com
此外,CloudFormation的语法很奇怪。CloudFormation不需要存储桶的名称(它已经知道了),它只需要端点。
因此,不要使用以下内容:
"AliasTarget": {
               "DNSName" : "example-bucket.s3-website-eu-west-1.amazonaws.com",
               "HostedZoneId" : "<zoneID>"
             },

你需要

"AliasTarget": {
               "DNSName" : "s3-website-eu-west-1.amazonaws.com",
               "HostedZoneId" : "<zoneID>"
             },

路由53中需要指定重定向的位置,因为路由的名称必须与存储桶的名称相同。

相关问题:https://dev59.com/lm445IYBdhLWcg3wGWZ7#5048129


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接