在 Amazon Route 53 上将非 www 请求重定向到 www

在 Amazon Route 53 上将非 www 请求重定向到 www

我想将所有请求从 重定向example.comwww.example.com

最好是在 DNS 级别进行此操作。我尝试使用 PTR 记录,但失败了,返回 404。

wwww.example.com是弹性负载均衡器的别名。

实现这一目标的最简单的方法是什么?

答案1

如果您已经在使用 Route 53,则可以使用其专有别名“记录”来解决此问题。使用标准 DNS,您根本无法做到这一点,您必须让网站发送 301 重定向。当然,您仍然需要发送 301 重定向或处理某些请求不带 www 的事实(尽管出于 SEO 原因您应该发送 301)。

可能最简单的方法是设置一个与裸域名相同的 S3 存储桶,并配置存储桶属性以从 example.com 重定向到 www.example.com,然后在 Route 53 中为指向该 S3 存储桶的裸域名创建一个别名。

来自评论

为了增强答案,我们采取了以下措施来实现这一点:

  • 设置存储桶 - 其名称无关紧要,并且必须允许公开。
  • 在存储桶中,单击属性,然后单击静态网站托管。单击将所有请求重定向到另一个主机名,然后输入您希望流量转到的站点。
  • 复制存储桶名称的端点并转到 Route53 控制台中的托管区域,将具有别名号的 CNAME 添加到您需要从中重定向的 URL,然后将存储桶端点粘贴为其值。

答案2

对于 DNS 别名,您只需在 DNS 中添加 CNAME 或 A 记录即可。请参阅我的回答:如何在 Route53 中将 www 重定向到非 www?

对于 URL 重写(如将客户端重定向到另一个地址),您需要在 Web 服务器上完成某种形式的 URL 重写逻辑。有几种方法可以做到这一点,这取决于您使用的 Web 服务器类型。最流行的方法是将 mod_rewrite 与 apache 结合使用。此站点充斥着有关 mod_rewrite 的问题,搜索几下应该就能找到您想要的。

答案3

您可以借助 S3 存储桶来完成此操作。步骤如下:

步骤 1.创建一个 S3 存储桶。

第 2 步。将存储桶设为具有重定向的静态网站托管。

步骤 3. 编辑非 www 域的 AWS Route 53 条目。

A – IPv4 地址 -> 别名是 -> 别名目标(从下拉菜单中选择 s3 存储桶端点)。

步骤4.保存记录集。

答案4

如果您的网站存储在 S3 存储桶中,您可以考虑执行以下步骤:

  1. 创建两个具有精确域名名称的 S3 存储桶(example.com 和www.example.com
  2. 启用存储桶策略以进行公开访问
  3. 为两个域启用静态网站,但是,我们将为 example.com 配置重定向。
  4. 为两个 S3 存储桶创建两个 CloudFront 为 example.com 创建两个别名 A 记录和www.example.com并分别路由到两个CloudFront。

欲了解更多详细信息,可以关注以下文档:主办亚马逊 s3 和 CloudFront 上的静态网站

相关内容