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 域重定向到新域的主要内容,如果未能解决你的问题,请参考以下文章

301 使用 .htaccess 从旧域重定向到新域

在 .htaccess 中使用 HTTPS 将旧域重定向到新域

HTACCESS-将旧域重定向到新域

将所有请求从旧域重定向到新域

apache_conf 从旧域重定向到新域

如果用户已缓存站点,如何将用户从旧域重定向到新域