通过 DNS 将流量从 example.com 重定向到 www.example.com

通过 DNS 将流量从 example.com 重定向到 www.example.com

我有一个比较独特的问题。对于域名 (example.com),我希望人们访问 www.example.com,但是我也将 GSLB 混入其中。对于 GSLB,设备(每个数据中心一个)需要成为他们将要回答的域名部分的名称服务器(www.example.com),因此我知道我可以很好地创建 www.example.com 的 NS 记录并使其指向每个 GSLB 设备。但是,这仅适用于 www.example.com,而不适用于 example.com。我不想将 example.com 的根 NS 设为我的 GSLB,因为我的企业管理 DNS 提供商在所有 DNS 工作方面都做得非常出色。有什么想法吗?

答案1

您需要设置一个 Web 服务器example.com并进行重定向。我建议重定向为 301(永久)而不是 302(临时),因为从 SEO 的角度来看,您希望任何链接到 都example.com算作链接www.example.com。有些服务可以为您处理重定向,或者您可以自己处理。

基于 CNAME 的解决方案不是最优的,因为 1) 从技术上讲,当您有其他记录时,您不能拥有 CNAME,2) 您会在两个不同的地址显示相同的内容,而搜索引擎不喜欢这样。

答案2

克服 DNS 中的这一限制的常用方法是提供从 example.com 到 www.example.com 的 HTTP 302 重定向。

以下是基于 RFC 的限制:

  • CNAME 不得具有其他类型的资源记录(MX、A 等),如 RFC 1034 第 3.6.2 节和 RFC 1912 第 2.4 节所规定。例外情况是使用 DNSSEC 时,在这种情况下可以存在与 DNSSEC 相关的记录,例如 RRSIG、NSEC 等。(RFC 2181 第 10.1 节)

  • 应避免使用指向其他 CNAME 记录的 CNAME 记录。特别是,CNAME 记录可能会产生无限循环和其他错误情况。RFC 1034 第 5.2.2 节。

  • 指向其他名称的其他 DNS 记录类型(如 NS、MX、PTR、SRV 等)绝不应指向 CNAME。RFC 1034 第 3.6.2 节、RFC 1912a 第 2.1 节。

答案3

使用 Web 服务器的重定向,并在 DNS 中将 CNAME www 定义为 example.com。

答案4

A别名记录记录应该能够将对 example.com 的请求重定向到 www.example.com。

相关内容