【问题标题】:How do I redirect a naked (apex) domain to www using Route 53?如何使用 Route 53 将裸(顶点)域重定向到 www?
【发布时间】:2014-03-29 23:51:55
【问题描述】:

我需要使用 Route 53(必要时使用 S3)从 example.com 到 www.example.com 进行 301 重定向。有一些类似问题的解决方案,但它们要么没有解决如何redirect from the apex,要么只是don't work

当我按照here 的步骤操作时,Route 53 告诉我无法将 CNAME 添加到顶级域。因此,我陷入了泥潭。

这看起来很简单,但亚马逊让它变得很难。任何帮助将不胜感激。

【问题讨论】:

标签: redirect amazon-web-services amazon-s3 dns amazon-route53


【解决方案1】:

我昨天才弄明白:

  1. 转到您的 S3 控制台https://console.aws.amazon.com/s3/home,然后单击创建存储桶。对于 Bucket name,输入您的裸域名,例如对于 www.example.com,您只需输入 example.com。然后点击创建

  2. 点击新存储桶的名称,然后点击属性 > 静态网站托管。在出现的菜单上选择重定向请求。对于目标存储桶或域,请输入完整的域,例如 www.example.com。对于 Protocol 输入所需的协议,http 或 https。点击保存

  3. 导航至https://console.aws.amazon.com/route53/home 并单击左侧菜单中的托管区域,打开您的 Route 53 托管区域。选择您的域并点击创建记录集。将 Name 区域留空,并将默认类型保留为 A - IPv4 address。为 Alias 选择 Yes,然后单击 Alias Target 文本框。您可能需要稍等片刻才能看到出现填充的下拉菜单中的值。此时菜单应包含您在第 1 步和第 2 步中创建的 S3 网站端点。选择它。

最后,点击创建,享受您的新路由设置!

【讨论】:

【解决方案2】:

尝试创建别名记录而不是 CNAME。

根据这个答案: RRSet of type CNAME with DNS name foo.com. is not permitted at apex in zone bar.com

【讨论】:

【解决方案3】:

必要的步骤如下:

  • 创建一个新的 Bucket 并将其命名为您的裸域名(例如:example.com)。
  • 在存储桶属性中,选择“静态网站托管”并将其重定向到您的 www.example.com 域。点击“保存”。
  • 转到您的 Route53 托管区域,并创建一条 A 记录。将其标记为别名,然后从下拉列表中选择您最近创建的存储桶。
  • 你准备好了。

【讨论】:

  • 注意:此方法仅适用于 HTTP - HTTPS 不起作用
  • 对于 HTTPS,您需要使用 cloudfront
  • 借助 cloudfront,您可以使用 lambda 边缘函数始终重定向到正确的域
  • 要全面涵盖 HTTP 和 HTTP、裸和 www(所有 4 种情况)所需的所有重定向,请参阅stackoverflow.com/a/67222388
【解决方案4】:

如果您使用的是 Application Load Balancer,他们会添加对重定向的支持。您将您的区域顶点指向您的 ELB(使用别名)并让 ELB 重定向到 www.example.com

这似乎是比设置存储桶、添加静态托管、重定向等更好的解决方案。

https://aws.amazon.com/about-aws/whats-new/2018/07/elastic-load-balancing-announces-support-for-redirects-and-fixed-responses-for-application-load-balancer/

【讨论】:

  • [+/-] 专业人士: 您可以保留查询。 缺点: 1) S3 存储桶免费/非常便宜,但 ELB 至少 15 美元/月。 2) 此外,就在一个地方处理各种请求而言,搭载现有 ELB 可能不是一个好主意。
【解决方案5】:

对于那些需要将裸域example.com重定向到www.example.com的人

最佳实践是创建一个新的负载均衡器

在端口 80 http 上使用侦听器,将 301 重定向到 www.example.com

如果您正在运行 https,只需在端口 443 上添加另一个侦听器,将 301 重定向到 www.example.com

一旦你完成了听众去

Route 53 > your domain> Create Record

将您的新负载均衡器指向重定向侦听器

记录名称:example.com

记录类型:A

别名:是

应用程序和负载均衡器的别名...

选择您的位置

选择您的新负载均衡器

保存并等待几分钟,现在所有对裸 example.com 的请求都将 301 重定向到 https 请求中包含的 www.example。

注意: 如果您想将 http 请求重定向到 https 请求,您需要执行相同的过程,但您需要为 https 设置转发侦听器而不是重定向侦听器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-16
    • 2017-08-31
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 2017-06-02
    • 2015-01-07
    相关资源
    最近更新 更多