1

一部の 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]

しかし、コードは機能しません。何故ですか?

4

1 に答える 1

2

クエリが変数 REQUEST_URI にありません。QUERY_STRING 変数を使用する必要があります。両方の条件をそれぞれ次の条件に置き換えます。

RewriteCond %{QUERY_STRING} !p=(221|222) [NC]
# And 
RewriteCond %{QUERY_STRING} p=(221|222) [NC]
于 2013-05-29T03:48:58.983 に答える