重写规则以重定向整个网站,但一条路线除外

时间:2011-12-13 08:42:41

标签: .htaccess mod-rewrite

我正在迁移网站,假设example.comyyy.com

example.com/aexample.com/a/*之类的所有内容都应保留在example.com

但还有更多内容:我的路由称为example.com/a-b/*,这应该重定向到yyy.com/a-b/*(就像网站的其他部分一样)。

我可以让网站正确重定向除example.com/a*之外的所有内容,但这意味着example.com/a-b未被重定向...

我试图在我的.htaccess中写下以下规则,徒劳无功:

RewriteEngine On
RewriteBase /

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

甚至:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^a-b
RewriteRule ^(.*)$ http://www.yyy.com/$1 [R=301,L]

RewriteCond %{REQUEST_URI} !^a
RewriteRule ^(.*)$ http://www.yyy.com/$1 [R=301,L]

(不能更改我的路线名称)

1 个答案:

答案 0 :(得分:0)

在.htaccess文件中尝试以下内容

RewriteEngine On
RewriteBase /

#if it starts with routes a-b then send to yyy
RewriteCond %{REQUEST_URI} ^/(a-b/.*)$ [NC]
RewriteRule . http://www.yyy.com/%1 [R=301,L]

#if it does not start with an a, then also send to new site
RewriteCond %{REQUEST_URI} !^/a [NC]
RewriteRule (.*) http://www.yyy.com/$1 [R=301,L]