如何使用A或者CNAME记录将siteA重定向到siteB

时间:2020-03-05 18:40:44  来源:igfitidea点击:

我有2个主机,我想将主机1上的一个子域指向主机2上的一个子域:

subdomain.hostone.com --> subdomain.hosttwo.com

我添加了一个CNAME记录来托管一个指向subdomain.hosttwo.com的记录,但我得到的只是一个" 400 Bad Request"错误。

有人可以看到我在做什么吗?

解决方案

回答

听起来好像hosttwo.com上的Web服务器不允许传递未定义的域。我们还说过要重定向,这实际上不是重定向的方法。如果我们通过GoDaddy购买了该域,则可能只想使用其重定向服务。

回答

设置301重定向可能是最好/最简单的方法。无需DNS黑客入侵。

回答

尝试将其更改为" subdomain-> subdomain.hosttwo.com"

" CNAME"是特定域的别名,因此,当我们进入hostone.com的控制面板时,不必在" CNAME"别名中输入全名。

就我们得到的错误而言,我们可以登录subdomain.hostwo.com并检查日志吗?

回答

我们只能将DNS名称更改为其他IP地址,因此,如果我们使用的是虚拟主机,则无法使用DNS重定向。

当我们在浏览器中输入subdomain.hostone.com时,它将使用DNS获取其IP地址(如果是CNAME,它将继续尝试直到从A记录中获取IP),然后它将连接到该IP并发送带有

Host: subdomain.hostone.com

http标头中的某个位置。

回答

我们可以通过多种非DNS方式执行此操作。 subdomain.hostone.com上的登录页面可以具有HTTP重定向。可以将hostone.com上的Web服务器配置为重定向(在Apache中很容易,不确定IIS),等等。

回答

我认为有几个答案围绕着可能解决问题的方法。

我同意最简单(也是针对SEO的最佳解决方案)是301重定向。在IIS中,这很简单,我们可以为subdomain.hostone.com创建一个网站,在创建该网站之后,右键单击该网站并进入属性。单击打开的站点属性窗口的"主目录"选项卡。选择单选按钮"重定向到URL",输入新站点的URL(http://subdomain.hosttwo.com),然后选中"上面输入的确切URL","对此进行永久重定向"复选框。资源"(第二个复选框会导致301重定向,而不是302重定向)。单击确定,完成。

或者,我们可以使用以下方法之一在http://subdomain.hostone.com的网站上创建一个页面(取决于托管平台支持的内容)

PHP重定向:

<?
Header( "HTTP/1.1 301 Moved Permanently" ); 
Header( "Location: http://subdomain.hosttwo.com" ); 
?>

ASP重定向:

<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://subdomain.hosttwo.com"
%>

ASP .NET重定向:

<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://subdomain.hosttwo.com");
}
</script>

现在,假设CNAME记录已正确创建,那么我们遇到的唯一问题是为http://subdomain.hosttwo.com创建的站点正在使用共享IP,并且使用主机标头确定应显示哪个站点。若要解决IIS下的此问题,请在Web服务器上的IIS管理器中,右键单击subdomain.hosttwo.com的站点,然后单击"属性"。在显示的"网站"选项卡上,我们将需要单击的IP地址旁边看到一个"高级"按钮。在出现的"高级网站标识"窗口上,单击"添加"。选择与subdomain.hosttwo.com已经使用的IP地址相同,输入80作为TCP端口,然后输入subdomain.hosttwo.com作为Host Header值。单击"确定",直到返回到IIS管理器主窗口,并且一切顺利。打开浏览器,浏览到http://subdomain.hostone.com,即使URL显示为http://subdomain.hostone.com,也会看到位于http://subdomain.hosttwo.com的站点。

希望对我们有帮助...

回答

如今,许多站点所有者正在使用CDN服务,该服务从CDN服务器提取数据。如果是这种情况,那么我们有两个选择:

  • 创建一个子域并通过添加CNAME记录来编辑DNS
  • 不要创建子域,而只创建指向临时DNS URL的CNAME记录。

该解决方案仅意味着从CDN中提取代码,这将表明它正在从cdn.sitename.com提取数据,但实际上是从CDN主机中提取数据。