将根和所有子域redirect到另一个相同的域(仅限DNS)

首先,是的,我知道,这个问题可能是重复的,但是现在我search了几个小时,我找不到任何相关的答案….所以我试着问。

我得到了,比方说,domain-a.com&domain-b.com。 domain-a只是domain-b.com的别名,一切(root&subdomains)都应该redirect到它。 所以我想要下面的redirect:

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-record和使用nginx或Apache的redirect。 但是,我只想使用我的DNS设置(通过OVH面板)来完成所有这些,所以我只需要在我自己的服务器上处理domain-b.com

我试过了:

  • domain-a.com上使用这样的CNAMElogging: * IN CNAME domain-b.com. ,但是当我去aze.domain-a.com ,URL不会改变,并且根域不被处理。
  • 使用301redirect,但我必须configuration每个子域,我不知道哪些子域将提前使用。

看起来DNAMElogging是适合我的需要的,但是我不能用OVH来build立一个logging。 所以,如果这是正确的logging使用,我将不得不将我的域名转移到另一个注册商,所以我宁愿在做之前确定。

我有另一个约束:我的服务器处理几个域名,所以我不能赶上每个请求redirect到domain-b.com等价,我domain-a.comconfigurationdomain-a.com

那么,这可能吗?

感谢您的帮助

Web请求redirect的唯一方法是使用Web服务器。 当一个DNSparsing器,就像内置在用户系统中的parsing器一样,请求一个地址,它会得到一个地址。 一个CNAME只是告诉它从另一个地方得到的地址,但它需要一个地址,句点。 然后,它将向networking服务器发起请求的域的请求,使用它获得的地址作为启动TCP连接的手段。 您的浏览器和您的DNSparsing器之间没有连接。 因此,即使使用DNAME(在更大规模上只是CNAME),您所要求的内容在纯DNSscheme中也是不可能的。

我不熟悉nginx的configuration,但在apache中,可以创build一个虚拟主机来为domain-b服务。 顶级的虚拟主机可以作为访问网站的任何其他方式的“全面获取”。 您可以使用一些重写规则将所有这些catch-allsredirect到domain-b。 所以你可以捕获aze.domain-x.com或aze.domain-y.com等,并抓住主机部分,并将其redirect到aze.domain-b.com。 你将不得不使用一些正则expression式等,但这是正确的方法来做到这一点。 请参阅Apache 2.4redirect并使用mod_rewrite重新映射 。 我相信nginx具有相同的function,虽然也许以不同的方式执行。