SEO 使用 AWS S3 和 CloudFront 静态网站复制内容

SEO Duplicate Content with AWS S3 with CloudFront Static Website

我已经使用 S3、CloudFront 和 Route53 为静态网站完成了经典设置,但是我遇到了以前从未遇到过的令人抓狂的错误。

所以有 2 个存储桶,example.net 和 www.example.net,非 www 存储桶启用了静态托管,而 www 存储桶只是重定向到 HTTPS。

在 Route53 端,我有 mysite.com 的 A 记录作为 CloudFront 分发的别名,www CNAME 指向 mysite.com

CloudFront 分配使用非 www 存储桶作为来源,但同时列出 www 和非 www 站点作为备选,并启用了将 HTTP 重定向到 HTTPS 选项。

所有这些都成功地让我的网站正常运行,但在 SEO 方面我遇到了重复的内容问题,因为所有的别名都成功解析了


http 非 www 地址 --> https 非 ww 地址(HTTP 到 HTTPS,好)

https 非 www 地址 --> https 非 www 地址(直接 HTTPS,好)


http www 地址 --> https www 地址(有效,但无法重定向到非 www 域)

https www 地址 --> https www 地址(有效,但无法重定向到非 www 域)


我尝试的一切似乎都破坏了 www 方面(例如删除 CloudFront 分发版上的别名,或将 CNAME 切换为指向 CloudFront URL 的 A)。 事实是,我之前使用具有转发功能的 GoDaddy DNS 完成了此操作,根据 this 的回答,我了解到它是反向代理而不是核心 DNS 功能。

然而,我找到了 this 中关于如何使用 CloudFront 作为反向代理的文章,但我无法理解如何将其应用于这种情况。

谁能帮帮我,谢谢!

如果我正确理解你的问题,你基本上是说 http www addresshttps www address 都应该重定向到 https non-www address.

为了方便引用域名,假设www addresswww.example.comnon-www addressexample.com

这是我针对您的问题提出的解决方案。

  1. www.example.com 的 CNAME dns 记录更改为指向您的 non-www S3 存储桶的 ALAS 记录。

  2. 将您的 non-www S3 存储桶配置为静态网站,并让它使用 https 协议将所有传入请求重定向到 example.com