如何使用A或者CNAME记录将siteA重定向到siteB
我有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主机中提取数据。