我已经用S3、CloudFront和Route53做了一个静态网站的经典设置,然而我得到了一个令人发狂的错误,我以前没有遇到过。
所以有2个bucket,example.net和www.example.net,非www的那个开了Static Hosting和实际文件,www的那个只是重定向到HTTPS。
在Route53这边,我把mysite.com的A记录作为CloudFront分发的Alias,www CNAME指向mysite.com。
CloudFront 分发版使用非www bucket作为原点,但将www和非www网站都列为备选,并开启了重定向HTTP到HTTPS选项。
所有这些都成功地让我的网站正常运行,但在SEO方面,我遇到了一个重复内容的问题,因为所有的别名都成功地解决了,所以
http非www地址--> https非www地址(HTTP转HTTPS,好)。
https非www地址--> https非www地址(直接HTTPS,好)
http www地址 --> https www地址 (有效,但不能重定向到非www域)
https www地址 --> https www地址 (有效,但不能重定向到非www域)
我尝试的所有方法似乎都会破坏www端(比如删除云锋分发上的别名,或者把指向云锋URL的A换成CNAME)。事情是这样的,我之前用GoDaddy的DNS做了一个带有转发功能的DNS,从 这个 我理解的答案是反向代理,而不是DNS核心功能。
然而,我发现 这个 中文章介绍了如何使用CloudFront作为反向代理,但我不明白如何应用到这个场景。
谁能帮帮我,好吗,先谢谢了!
如果我对你的问题理解正确的话,你基本上是说两个 http www address
和 https www address
应该是重定向到 https non-www address
.
为了方便引用域名,我们假设一下。www address
是 www.example.com
和 non-www address
是 example.com
.
下面是我对你的问题提出的解决方案。
改变CNAME的DNS记录 www.example.com
的ALAS记录,指向您的 non-www
S3 bucket。
配置您的 non-www
S3 bucket作为一个静态网站,并让它将所有传入的请求重定向至 example.com
使用https协议。