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

fla*_*ian 47 amazon-route53

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

最好,这应该发生在 DNS 级别。我尝试使用 PTR 记录,但只是失败了,返回 404。

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

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

Mic*_*ton 54

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

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

来自评论

为了增强答案,以下是我们为使其正常工作所做的工作:

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

  • 这仅适用于 http 请求,因为 S3 不支持 https。对 `https://example.com` 的请求将失败。 (6认同)
  • 为了增强答案,以下是我们为使其正常工作所做的工作: - 设置存储桶 - 名称无关紧要,并且必须允许公开。- 在存储桶中,单击属性并单击静态网站托管。单击将所有请求重定向到另一个主机名,然后输入您希望流量转到的站点。- 复制存储桶名称的端点并转到 Route53 控制台中的托管区域,将别名为 No 的 CNAME 添加到您需要重定向的 URL 并将存储桶端点作为其值粘贴。 (2认同)

pau*_*ska 7

对于 DNS 别名,您只需在 DNS 中添加 CNAME 或 A 记录。在此处查看我的答案:如何在 Route53 中将 www 重定向到非 www?

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

  • [您链接到的答案](https://serverfault.com/a/454978/148410) 用于将“www.domain.com”发送到“domain.com”。这个问题是相反的。您使用“CNAME”或“A”记录的解决方案是否适用于将“domain.com”发送到“www.domain.com”? (3认同)

Aru*_*hok 5

您可以在 s3 存储桶的帮助下执行此操作。步骤粘贴如下:

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

步骤 2. 使用重定向将存储桶设为静态网站托管。

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

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

步骤 4. 保存记录集。