繁体   English   中英

使用htaccess重写规则进行多域重定向

[英]multiple domain redirection with htaccess rewrite rules

我正在寻找一种方法将所有旧域重定向到新域,

看起来它们在基本级别被重定向,但是当它来到子类别或perm链接时,根本没有重定向。

    Options +FollowSymLinks 
    RewriteEngine on

    RewriteCond %{HTTP_HOST} (www\.)?mydomain1\.com$ [NC]
    RewriteCond %{HTTP_HOST} (www\.)?mydomain2\.com$ [NC]
    RewriteCond %{HTTP_HOST} (www\.)?mydomain3\.com$ [NC]
    RewriteCond %{HTTP_HOST} (www\.)?mydomain4\.com$ [NC]
    RewriteCond %{HTTP_HOST} (www\.)?mydomain5\.com$ [NC]
    RewriteCond %{HTTP_HOST} (www\.)?mydomain6\.com$ [NC]

    RewriteRule ^(.*) http://www.mydomain7.com/$1 [QSA,L,R=301]

基本级别重定向很好:mydomain1.com/graph.php => mydomain7.com

但即使在这个级别,它也无法重定向到同一页面

更重要的是perm-links:

mydomain1.com/users/13/James =>没有重定向

最干净的解决方案是重定向任何不是www.mydomain7.com的域名

RewriteCond %{HTTP_HOST} !^www\.mydomain7\.com$ [NC]
RewriteRule ^(.*) http://www.mydomain7.com/$1 [L,R=301]

默认情况下,所有RewriteCond都是AND,因此您的规则将无效,因为%{HTTP_HOST}值不能同时是所有这些域。

要么使用Gerben建议的否定,要么像这样重写你的代码:

RewriteCond %{HTTP_HOST} ^(www\.)?(mydomain1|mydomain2|mydomain3|mydomain4|mydomain5|mydomain6)\.com$ [NC]
RewriteRule ^ http://www.mydomain7.com%{REQUEST_URI} [L,R=301]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM