我有一个托管在 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 重定向?
感谢您对此的任何帮助!