domain-name-system – 如何仅使用A-Records和CNAME记录将域A重定向到域B.

前端之家收集整理的这篇文章主要介绍了domain-name-system – 如何仅使用A-Records和CNAME记录将域A重定向到域B.前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个托管不同主机的域名.我需要将域A重定向到域B.不幸的是,我不能从主机A进行301重定向,但只能在主机A修改/添加DNS条目(A记录和CNAME).

当然可以仅使用A记录和CNAME将www.DomainA.com重定向到www.DomainB.com吗?

目前,DNS条目是:

DomainA.com.    3600    IN    SOA       ns1.HostA.net.
www             3600    IN    CNAME     www.DomainB.com.    
DomainA.com.    3600    IN    NS        ns1.HostA.net.  
DomainA.com.    3600    IN    NS        ns2.HostA.net.  
DomainA.com.    3600    IN    NS        ns3.HostA.net.

我想重定向

DomainA.com -> DomainB.com
*.DomainA.com -> *.DomainB.com

我已经尝试过这个other post的建议,但它没有用.

我怎么能只用A-Records和CNAME实现这个呢?感谢您的意见.

Prembo.

解决方法

所以你不是在考虑重定向(就像在应用程序级别那样,即在Apache / Nginx / where),而是在DNS解析上.根据您的描述,您希望将DNS请求解析为DomainB的IP,将托管或不应该托管托管DomainA的主机.除非我在你的请求中遗漏了什么?

正如Shane所指出的,DNS无法进行HTTP重定向 – 这是应用程序/网络服务器的职责.您可以使DomainA和DomainB解析为DNS上的相同IP,并且一切都可以.但是,如果您希望按照每个URL /每个路径的方式执行此操作,那么这是不可能的 – DNS无法做到这一点 – 它是一个简单的DNS-> IP服务,实际URL发生的是Web服务器的任务.

在下面的评论之后,我要做的是将DomainA的所有DNS记录引用到与DomainB指向的相同的IP – 这样您将获得HTTP请求命中hostB然后它只是一个简单的问题:

>创建一个特定的Apache Name Baseed虚拟主机 – 它将从自己的DocumentRoot提供文件
>在Apache上创建永久重定向,如下所示:

这将重写DomainB到DomainA的任何内容,它可以托管在同一台服务器上或其他地方.我很欣赏第二个选项可能是开销,如果你可以/允许在apache上创建基于名称的虚拟主机,则不需要.

<VirtualHost *:80>
  ServerName DomainB
  Redirect permanent / http://DomainA/
</VirtualHost>

我将使用1. – 将DomainA的所有DNS记录指向与DomainB指向的相同IP,并在Apache上创建特定的基于名称的VirtualHosts.

猜你在找的HTML相关文章