将 non-WWW 重定向到 AWS 中的 WWW 不起作用

Redirecting non-WWW to WWW in AWS not working

我试图设置从 non-WWW 域到 WWW 域的重定向。 对于这个线程,我的域是 example.com。 所以我想将 example.com 重定向到 www.example.com。 此线程中的所有资源也都是 HTTPS-protocol 基础的。

我知道我需要为此设置一个 S3 存储桶。 所以我创建了一个名为 example.com 的存储桶。 我将其配置为具有 public 权限的静态网站托管:

我还配置它重定向到另一个域:

然后在 Route53 中,我在 xxx.com 域下有 2 个相关条目:

第一个是捕获 xxx.com 域并将其转发到 S3 存储桶:

第二个是捕获 example.xxx.com 域并将其转发到我的负载均衡器(然后将其转发到我的 ECS 集群..):

所以对我来说似乎所有配置都是正确的。但是,我已经为 DNS 传播延迟等待了 2 天。但仍然:我无法通过:https://example.com 访问。我可以访问 S3 存储桶 public url (Bucket website endpoint) - 它也在 route53 中设置为 non-WWW 域的别名。我可以访问 https://www.example.com。只有 non-WWW 个域不起作用:我超时了..

有什么建议吗?


我也使用负载平衡器进行此重定向。

我已将 Route53 设置为将“example.com”域转发到我的负载均衡器。

然后在我设置的负载均衡器配置中:

所以现在当我输入:“example.com”时,我可以访问我的 Web 应用程序,但我被路由到“https://example.com”——而不是 WWW。

为什么不使用您的 ALB 为您做他的呢?将 www 和 non-www 都指向您的 ALB 并创建一个规则来检查主机,如下所示:

请将此规则添加到端口 443,可能会有问题。

对于端口 80,我直接重定向到正确的主机,例如 www.{host]...

对于 443 中的规则,我进行了显式重定向,如我的屏幕截图所示。

大多数浏览器默认添加 https 协议,因此只需键入 example.com 就会被请求为 example.com 而不是几年前的 example.com