htaccess 域重定向到新域
Posted
技术标签:
【中文标题】htaccess 域重定向到新域【英文标题】:htaccess domain redirect to newdomain 【发布时间】:2014-04-06 22:13:32 【问题描述】:我有域名 www.oldsite.com,我设置了一个重定向来转发到 www.newsite.com/new
但是当我用谷歌搜索旧网站时,它的所有子链接都会转到 www.newsite.com/new/sublink
如何编辑 htaccess 文件,使子链接永远不会通过
RewriteCond %HTTP_HOST ^oldsite\.com*$ [OR]
RewriteCond %HTTP_HOST ^www\.oldsite\.com*$
RewriteRule ^/?$ "http\:\/\/www\.newsite\.com\/new" [R=301,L]
简而言之,oldsite.com 中涉及的所有链接都应重定向到 newsite.com/new
我阅读了以下内容,但似乎没有多大帮助。 htaccess: domain hosted on subdirectory
【问题讨论】:
您不需要旧站点/新站点位中的"
引号或 \
反斜杠...
【参考方案1】:
下面的.htaccess
应该只放在旧域的根文件夹中:
RewriteCond %HTTP_HOST ^(www\.)?oldsite\.com$ [NC]
RewriteRule ^ http://www.newsite.com/new [R=301,L]
它将任何东西从旧域重定向到新域,例如:
http://oldsite.com/someurl
将前往:
http://www.newsite.com/new
旧站点中的任何 URL 都不会传递到新站点,它们将全部发送到 /new
。
注意: 确保您在旧域的其他文件夹中没有任何额外的 .htaccess
文件,因为这些文件会将之前的规则设置为空。
如果您只想将主域发送到新域而不包含任何 URL:
RewriteCond %HTTP_HOST ^(www\.)?oldsite\.com$ [NC]
RewriteRule ^/?$ http://www.newsite.com/new [R=301,L]
另一种方法是处理新站点上的所有 URL,如下所示.htaccess
:
RewriteCond %HTTP_HOST ^(www\.)?oldsite\.com$ [NC]
RewriteRule ^ http://www.newsite.com/new%REQUEST_URI [R=301,L]
它将任何东西从旧域重定向到新域,例如:
http://oldsite.com/someurl
将前往:
http://www.newsite.com/new/someurl
如果您不希望新的出现,只需从上述规则中删除 /new
。
【讨论】:
完美,搞定,谢谢 非常好的和详细的答案。以上是关于htaccess 域重定向到新域的主要内容,如果未能解决你的问题,请参考以下文章