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

时间:2013-05-29 00:56:03

标签: php .htaccess mod-rewrite redirect

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

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]

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

1 个答案:

答案 0 :(得分:2)

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

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