我应该如何配置我的 DNS 记录以将所有流量从一个域定向到另一个域?
Posted
技术标签:
【中文标题】我应该如何配置我的 DNS 记录以将所有流量从一个域定向到另一个域?【英文标题】:How should I configure my DNS records to direct all traffic from one domain to another? 【发布时间】:2015-04-14 19:20:14 【问题描述】:我有一个域名mydomain.com
和mydomain.biz
,并希望后者成为前者的同义词:每当用户输入www.mydomain.biz
时,他们就会被带到www.mydomain.com
。
我为mydomain.com
准备好了一切,并从我的limited understanding 认为CNAME
记录将完成我想要做的事情,所以我有
NS mydomain.biz. = (nameservers that work fine)
SOA mydomain.biz. = (values that work fine)
CNAME *.mydomain.biz. = mydomain.com.
当我host mydomain.biz
我得到
www.mydomain.biz is an alias for mydomain.com.
后面是与我从host mydomain.com
得到的完全匹配的其他信息。然而,任何导航到www.mydomain.biz
的尝试都会失败。
当我查看我的 NS 记录的 propagation 时,我也对所看到的内容感到困惑。检查mydomain.biz
给出上面指定的名称服务器,但检查www.mydomain.biz
给出mydomain.com
指定的值(在其他地方)
我这样做的方式不对吗?我应该如何配置我的 DNS 记录以将所有流量从一个域引导到另一个域。
【问题讨论】:
【参考方案1】:DNS 无法重定向请求。让我们举个例子说明 CNAME 做了什么来澄清:
CNAME:域A ==> 域B
这样做是将域A 的请求发送到与域B 相同的IP。但是 URL 将保持为 domainA(因此它不是重定向,重定向实际上会更改 URL)。
如果您可以在两个不同的域下加载站点,那么 CNAME 记录就可以完成这项工作。但是,您需要确保您的服务器配置为处理来自 domainA 和 domainB 的请求。根据您的服务器环境,您执行此操作的方式非常不同。例如,如果您使用的是 apache,您的虚拟主机会决定处理哪些域(您可以设置它以便接受任何域)。但是,如果您使用的是共享主机,您可能会被限制在您注册的域中。添加更多取决于您的虚拟主机,因此您必须接受它们。
另一方面,如果您希望将访问者重定向到 domainB,则必须将 domainA 指向将返回 HTTP 重定向的服务器。可以是同一台服务器,如果请求是针对 domainA 的,您只需将其配置为返回 HTTP 重定向。
【讨论】:
所以我链接的关于使用 CNAME 用于此目的的答案(以及网上数百个类似的答案)是错误的? 我认为您链接的答案只是滥用了重定向一词。我发现这个***.com/questions/593807/… 解释得更好。 我的问题也是如此,我想。我正在寻找的结果与 CNAME 的描述相同,除非我遗漏了什么。 CNAME 过去曾为我工作过。 CNAME 记录会将域 A 指向域 B,以便它们最终都转到同一服务器,但 URL 仍将是原始域 A。如果这是您想要的,那就太好了。您需要做的就是确保您的服务器期望主机为域 A 的请求,这样它就不会像您所说的那样失败。 所以B的服务器需要一些配置来接收A?这似乎很奇怪:在这种情况下,服务器没有以任何方式配置——A 或 B 都没有。以上是关于我应该如何配置我的 DNS 记录以将所有流量从一个域定向到另一个域?的主要内容,如果未能解决你的问题,请参考以下文章
我应该如何在 Spring Boot 中配置 httpMessageConverters 以将消息转换为所需的格式?
如何配置DNS主机记录,以便我的网站显示域名而不是IP地址?
对于托管在 CloudFront 后面的 EC2 实例上的站点,如何将非 www 流量重定向到 www?
如何配置我的 DNS 以使用 Rancher 2.0 入口?