如何使用 HTTPS 云前端后面的 AWS 亚马逊云前端将非 WWW 转发到 WWW

Kam*_*y D 6 https amazon-s3 amazon-web-services amazon-cloudfront amazon-route53

我已经设置了 Cloud Front 来将所有调用重定向到 HTTPS 协议。现在我想将“非 www”转发到 www。对于当前设置,我如何才能实现这一点?

我尝试了下面的一个,但没有成功,因为这个没有考虑 HTTPS 重定向。

https://www.pbxdom.com/how-redirect-non-www-to-www-with-amazon-cloud-front-route-53-and-s3

URL 不会重定向 www。相反,它显示错误消息:此 XML 文件似乎没有任何关联的样式信息。文档树如下所示。

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
Run Code Online (Sandbox Code Playgroud)

Mar*_*cel 5

这是解决问题的另一种方法。我实际上试图完全按照您所做的去做,并且当涉及 CloudFront 时,我似乎永远无法真正将非 wwww 重定向到 www。

一旦您将 CloudFront 设置为将所有 HTTP 重定向到 HTTPS,它就会处理所有这些重定向,因此您无需担心。你可以把它从逻辑方程中去掉。

您的 Route 53 域中应该有 4 个“A”类型记录(假设您在 CloudFront 中启用了 IPv6):

  • www.domain.com“A”别名记录指向您的 CloudFront 实例
  • www.domain.com“AAAA”别名记录指向您的 CloudFront 实例
  • domain.com“A”别名记录指向您的 CloudFront 实例
  • domain.com“AAAA”别名记录指向您的 CloudFront 实例

最后,在一般 CloudFront 配置的 CloudFront“备用域名 (CNAME)”字段中,确保它包含 www 和非 www。请注意,CloudFront 更改实际上需要很长时间才能传播,因此请谨慎并耐心地进行更改。

这样做的最终结果是 www 和非 www 都可以工作,没有任何从非 www 到 www 的明显重定向,但仍然存在 HTTPS 重定向。

  • 虽然这在实践中确实有效,但从 SEO 的角度来看,这并不理想。最佳做法是强制重定向到 www 或非 www,以规范者为准。 (3认同)

Chr*_*ton 5

我有两个 CloudFront 发行版来实现此目的,一个为非 www 到 www 重定向提供“example.com”,第二个提供来自“www.example.com”的实际内容。

为此,我在非 www CloudFront 发行版上添加了一个 CloudFront Edge Lambda 函数,该函数将所有请求重定向到其对应的 www 请求。我写了一篇博文详细说明了这一点。

对于不使用 Lambda 的替代方法,此答案将非 www 分发指向 S3 存储桶集,以将所有请求重定向到 www 版本。