【发布时间】:2012-08-17 01:04:21
【问题描述】:
我有一个托管在 Network Solutions 的网站以及两个域。 “OldDomain”过去指向托管帐户,但现在“NewDomain”指向主机。
问题:如果不创建重定向循环,重定向“OldDomain”将不起作用。
我尝试了以下方法:
1) 重定向 OldDomain(带/不带“www”),并为 NewDomain 重定向非 www:
RewriteCond %{HTTP_HOST} ^www.olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^olddomain.com$
RewriteCond %{HTTP_HOST} ^newdomain.com [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,NC]
2) 使用 PHP 标头重定向:
$dom = $_SERVER['HTTP_HOST'];
if(strripos($dom, 'olddomain.com') >= 0) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.com/");
}
选项 #1 不执行任何操作。选项 #2 将我置于重定向循环中,即使前两个 RewriteCond 规则已被注释掉。
我之前做过很多 .htaccess 重定向,但是这个让我很头疼,为什么它不正确。这只是网络解决方案问题吗?我从来没有遇到过任何其他主机的问题。顺便说一句,NS 支持告诉我必须付费才能将 OldDomain 转发到 NewDomain,因为它目前没有指向托管包。如果是这样,为什么我不能将两个域都指向同一个托管包,并且至少在索引页的标题中使用 PHP 重定向??
感谢您对此的任何帮助!
【问题讨论】:
标签: php .htaccess redirect http-status-code-301