将根域名及所有子域名重定向到另一个等效域名(仅限 DNS)

将根域名及所有子域名重定向到另一个等效域名(仅限 DNS)

首先,是的,我知道,这个问题可能是重复的,但我已经搜索了几个小时,却找不到任何相关的答案......所以我尝试询问。

假设我得到了 domain-a.com 和 domain-b.com。domain-a 只是 domain-b.com 的别名,所有内容(根域和子域)都应重定向到它。因此,我想要以下重定向:

http://domain-a.com => http://domain-b.com
http://aze.domain-a.com => http://aze.domain-b.com
http://www.domain-a.com => http://www.domain-b.com

我还需要浏览器来显示domain-b.com,因此domain-a.com在访问域名时不应出现在任何地方......

好的,到目前为止,是的,使用 A 记录和使用 nginx 或 Apache 的重定向非常简单。但我希望仅使用我的 DNS 设置(通过 OVH 面板)来完成所有这些操作,所以我只需domain-b.com在自己的服务器上处理即可。

我尝试过的:

  • domain-a.com在:上使用这样的 CNAME 记录* IN CNAME domain-b.com.,但是当我转到时aze.domain-a.com,URL 不会改变,并且不会处理根域。
  • 使用301重定向,但我必须配置每个子域名,并且我不知道会提前使用哪些子域名。

看起来DNAME 记录符合我的需求,但我无法使用 OVH 设置。因此,如果这是正确的记录,我必须将我的域名转移到另一个注册商,所以我希望在这样做之前确定一下。

我还有另一个限制:我的服务器处理多个域名,所以我无法捕捉每一个请求重定向到domain-b.com等效项,并且我只想配置domain-a.com

那么,这可能吗?

感谢您的帮助

答案1

重定向 Web 请求的唯一方法是使用 Web 服务器。当 DNS 解析器(如内置在用户系统中的解析器)请求地址时,它会获取一个地址。CNAME 只会告诉它从哪里获取地址,但它想要一个地址,仅此而已。然后,它将向 Web 服务器发起请求,获取它所请求的域,并使用获得的地址作为启动 TCP 连接的方式。您的浏览器和 DNS 解析器之间没有任何连接。因此,在纯 DNS 场景中,即使使用 DNAME(只是更大规模的 CNAME),您也无法实现所请求的内容。

我不熟悉 nginx 的配置,但在 apache 中,您可以创建一个虚拟主机来为域 b 提供服务。顶级虚拟主机充当任何其他访问网站方式的“全部捕获”。您可以使用一些重写规则将所有这些全部捕获重定向到域 b。因此,您可以捕获 aze.domain-x.com 或 aze.domain-y.com 等,并抓取主机部分并将其重定向到 aze.domain-b.com。您必须使用一些正则表达式等,但这是正确的方法。请参阅Apache 2.4 使用 mod_rewrite 进行重定向和重新映射。我确信 nginx 具有相同的功能,尽管可能以不同的方式执行。

相关内容