Htaccess将一些url重定向到一个域,而将所有其他url重定向到另一个域


Htaccess redirect some URLS to one domain and all other urls to another one

我需要将一些url重定向到一个域,所有其他url重定向到另一个域。例如,重定向代码应该重定向mydomain.com/?p=221和mydomain.com/?p=222到谷歌和所有其他到另一个域。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !'.(css|png|gif|jpe?g|js)$ [NC]
RewriteCond %{REQUEST_URI} !(?p=221|?p=222)& [NC]
RewriteRule ^(.*)$ http://mydomain.com/$1 [L,R=301]
RewriteCond %{REQUEST_URI} (?p=221|?p=222)& [NC]
RewriteRule ^(.*)$ http://google.com [L,R=301]

但是代码不起作用。为什么呢?

查询不在变量REQUEST_URI中。您必须使用QUERY_STRING变量。分别用以下条件替换这两个条件:

RewriteCond %{QUERY_STRING} !p=(221|222) [NC]
# And 
RewriteCond %{QUERY_STRING} p=(221|222) [NC]