我需要将一些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]
但代码不起作用。那是为什么?
答案 0 :(得分:2)
查询不在变量REQUEST_URI中。您必须使用QUERY_STRING变量。分别用这些条件替换这两个条件:
RewriteCond %{QUERY_STRING} !p=(221|222) [NC]
# And
RewriteCond %{QUERY_STRING} p=(221|222) [NC]