44

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

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

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

谁能看到我做错了什么?

4

7 回答 7

14

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

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

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

于 2008-08-19T14:46:12.677 回答
11

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

我同意最简单(也是 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

希望有帮助...

于 2008-08-19T17:57:10.233 回答
2

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

于 2008-08-19T14:45:07.997 回答
2

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

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

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

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

于 2010-11-30T12:08:39.563 回答
1

您只能将 DNS 名称连接到不同的 IP 地址,因此如果您使用虚拟主机,则使用 DNS 重定向将不起作用。

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

主机:subdomain.hostone.com

http标头中的某处。

于 2008-08-19T14:50:47.160 回答
0

设置301 重定向可能是最好/最简单的。无需 DNS 黑客攻击。

于 2008-08-19T14:46:09.447 回答
0

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

于 2008-08-19T14:50:48.003 回答