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

时间:2008-08-19 14:42:29

标签: dns web-hosting cname

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

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

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

谁能看到我做错了什么?

7 个答案:

答案 0 :(得分:13)

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

CNAME是某个域的别名,因此当您转到hostone.com的控制面板时,您不必将整个名称输入CNAME别名。< / p>

就你得到的错误而言,你可以登录subdomain.hostwo.com查看日志吗?

答案 1 :(得分:11)

我认为有几个答案可以解决您的问题。

我同意最简单的(最好的搜索引擎优化解决方案)是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,即使您的网址显示http://subdomain.hosttwo.com

,您也会看到http://subdomain.hostone.com处的网站

希望有帮助...

答案 2 :(得分:2)

听起来好像hosttwo.com上的web服务器不允许传递未定义的域。你还说你想做一个重定向,这实际上不是重定向的方法。如果您通过GoDaddy购买此域名,您可能只想使用他们的重定向服务。

答案 3 :(得分:2)

目前,许多网站所有者正在使用从CDN服务器提取数据的CDN服务。如果那是你的情况,那么你有两个选择:

  1. 通过添加CNAME记录创建子域并编辑DNS

  2. 不要创建子域,只创建指向临时DNS URL的CNAME记录。

  3. 此解决方案仅意味着从CDN中提取代码,这将显示它从cdn.sitename.com获取数据,但实际上是从CDN主机中提取数据。

答案 4 :(得分:1)

您只能将DNS名称设为另一个IP地址,因此,如果您使用的是虚拟主机,则无法使用DNS重定向。

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

Host: subdomain.hostone.com 

在http标题中的某个地方。

答案 5 :(得分:0)

设置301 redirect可能是最好/最简单的。不需要DNS黑客攻击。

答案 6 :(得分:0)

您可以通过多种非DNS方式执行此操作。 subdomain.hostone.com上的目标网页可以有HTTP redirect。 hostone.com上的web服务器可以配置为重定向(在Apache中很容易,不确定IIS)等等。