代码之家  ›  专栏  ›  技术社区  ›  Peter Coulton

如何将站点A重定向到具有a或cname记录的站点B[关闭]

  •  42
  • Peter Coulton  · 技术社区  · 18 年前

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

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

    我在主机上添加了一个指向subdomain.hosttwo.com的cname记录,但我得到的只是一个' 400不良请求 “错误。

    有人知道我做错了什么吗?

    7 回复  |  直到 10 年前
        1
  •  13
  •   Markus W Mahlberg    10 年前

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

    这个 CNAME 是某个域的别名,因此当您转到hostone.com的控制面板时,不必在 cNeNe 别名。

    至于您得到的错误,您可以登录subdomain.hosttwo.com并检查日志吗?

        2
  •  11
  •   Brian G Swanson    18 年前

    我认为有几个答案与你的问题可能的解决方案有关。

    我同意最简单(也是最好的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的网站,然后单击“属性”。在显示的“Web站点”选项卡上,您应该看到需要单击的IP地址旁边的“高级”按钮。在出现的“高级网站标识”窗口中,单击“添加”。选择subdomain.hosttwo.com已经使用的IP地址,输入80作为TCP端口,然后输入subdomain.hosttwo.com作为主机头值。单击“确定”,直到返回到“IIS管理器”主窗口,您应该可以继续。打开浏览器,然后浏览到 网址:http://subdomain.hostone.com ,您将在 http://subdomain.hosttwo.com 显示,即使您的URL显示 网址:http://subdomain.hostone.com

    希望有帮助…

        3
  •  2
  •   Nick Berardi    18 年前

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

        4
  •  2
  •   Katie    15 年前

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

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

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

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

        5
  •  1
  •   Michał Piaskowski    18 年前

    您只能将DNS名称pont设置为其他IP地址,因此如果您使用的是虚拟主机,则使用DNS重定向将无法工作。

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

    Host: subdomain.hostone.com 

    在HTTP头的某个地方。

        6
  •  0
  •   Charles Duffy    18 年前

    设置一个 301 redirect . 不需要DNS黑客攻击。

        7
  •  0
  •   xanadont    18 年前

    您可以通过多种非DNS方式来实现这一点。subdomain.hostone.com的登录页可以具有 HTTP redirect . hostone.com上的webserver可以配置为重定向(在Apache中很容易,不确定IIS)等。