我有2个主机,我想将一个主机上的子域名指向另一个主机上的子域名:
subdomain.hostone.com --> subdomain.hosttwo.com
我在主机一中添加了一个 CNAME 记录,将其指向 subdomain.hosttwo.com,但是我得到了一个“400 Bad Request”错误。
有人能看出我做错了什么吗?
我有2个主机,我想将一个主机上的子域名指向另一个主机上的子域名:
subdomain.hostone.com --> subdomain.hosttwo.com
我在主机一中添加了一个 CNAME 记录,将其指向 subdomain.hosttwo.com,但是我得到了一个“400 Bad Request”错误。
有人能看出我做错了什么吗?
试着将它改为"subdomain -> subdomain.hosttwo.com"
CNAME
是某个域名的别名,因此当你进入hostone.com的控制面板时,你不需要在CNAME
别名中输入整个名称。
至于您遇到的错误,请您能否登录subdomain.hosttwo.com并检查日志?
www
) 到<Protocol> <[SubDomain.]Domain.TLD>[/Path[/...]](例如 https://www.example.com/sites/xyz
),而 CNAME 子域(例如 www
) 到<[SubDoman.]Domain.TLD>(例如 ghs.google.com
)。 - Ujjwal Singhcname
下添加了我的建议修改!! - Ali Abbasinasab我认为其中一些答案已经接近了解决您问题的可能方法。
我同意最简单(并且对于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 Manager中右键单击subdomain.hosttwo.com的站点,然后单击“属性”。在显示的“Web Site”选项卡上,您应该看到一个“高级”按钮,旁边有您需要单击的IP地址。在出现的“高级Web Site Identification”窗口上,单击“添加”。选择与subdomain.hosttwo.com已经使用的相同的IP地址,将TCP端口输入80,然后将subdomain.hosttwo.com作为主机标头值输入。点击“确定”,直到回到主IIS管理器窗口,这时就可以了。 打开浏览器,并浏览到http://subdomain.hostone.com,您将看到位于http://subdomain.hosttwo.com的站点,即使您的URL显示http://subdomain.hostone.com。
希望这能帮到您...
Header()
仍然可以正常工作。 - MrWhiteapache
重定向规则Redirect 301 / http://example.com/
。可以使用.htaccess
实现。 - hitautodestructHeader()
,因为它确实被定义为 header()
。PHP允许您不区分大小写地编写它是另外一回事。 - BadHorsie创建子域并通过添加CNAME记录编辑DNS
不创建子域,但只创建指向临时DNS URL的CNAME记录。
看起来hosttwo.com的web服务器不允许传递未定义的域名。你还说想要进行重定向,但这并不是一种重定向方法。如果你是通过GoDaddy购买的该域名,你可以考虑使用他们的重定向服务。
你只能将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),等等。