多个 QUERY_STRING 单独组合 QUERY_STRING

MULTIPLE QUERY_STRING COMBINED ALONE QUERY_STRING

我有一个重定向列表,其中许多与其他类似,但限制或多或少,例如:

http://www.example.com/example/form.aspx?code=2http://www.google.com

另一方面:

http://www.example.com/form.aspx?category=5&code=2http://www.microsoft.com

现在我尝试了:

RewriteCond %{QUERY_STRING} ^code=2$
RewriteCond %{REQUEST_URI} "^/example/form(.*)"
RewriteRule (.*) http://www.google.com? [R=301,L]

RewriteCond %{QUERY_STRING} code=2
RewriteCond %{QUERY_STRING} category=5
RewriteCond %{REQUEST_URI} "^/example/form(.*)"
RewriteRule (.*) http://www.microsoft.com? [R=301,L]

问题是,其中任何一项都会转到 http://www.google.com/?code=2 or http://www.google.com/?code=2&category=5

你有什么建议吗?

谢谢。

您可以使用以下规则重定向您的网址:

RewriteCond %{THE_REQUEST} /example/form\.aspx\?code=2 [NC]
RewriteRule ^ http://google.com/? [L,R]
RewriteCond %{THE_REQUEST} /example/form\.aspx\?category=5&code=2 [NC]
RewriteRule ^ http://microsoft.com/? [L,R]

万一

http://www.example.com/example/form.aspx?code=2 --> http://www.google.com

http://www.example.com/form.aspx?category=5&code=2 --> http://www.microsoft.com

RewriteCond %{QUERY_STRING} ^code=2$
RewriteCond %{REQUEST_URI} ^/example/form(.*)
RewriteRule ^(.*)$ http://www.google.com? [R=301,L]

RewriteCond %{QUERY_STRING} code=2$
RewriteCond %{QUERY_STRING} ^category=5
RewriteCond %{REQUEST_URI} ^/example/form(.*)
RewriteRule ^(.*)$ http://www.microsoft.com? [R=301,L]

万一

http://www.example.com/example/form.aspx?category=5&code=2 --> http://www.microsoft.com

http://www.example.com/example/form.aspx?category=5&code=234 --> http://www.whosebug.com

使用这个

RewriteCond %{QUERY_STRING} code=2$
RewriteCond %{QUERY_STRING} ^category=5
RewriteCond %{REQUEST_URI} ^/example/form(.*)
RewriteRule ^(.*)$ http://www.microsoft.com? [R=301,L]

RewriteCond %{QUERY_STRING} code=234$
RewriteCond %{QUERY_STRING} ^category=5
RewriteCond %{REQUEST_URI} ^/example/form(.*)
RewriteRule ^(.*)$ http://www.whosebug.com? [R=301,L]

以及任何其他问题:

如果你有不止一个1个元素类似,另一个和前面类似,有没有不用排序的方式指定?

现在如果我有例如:

RewriteCond %{QUERY_STRING} **code=2**
RewriteCond %{QUERY_STRING} category=5
RewriteCond %{REQUEST_URI} ^/example/form(.*)
RewriteRule ^(.*)$ http://www.microsoft.com? [R=301,L]

RewriteCond %{QUERY_STRING} **code=234**
RewriteCond %{QUERY_STRING} category=5
RewriteCond %{REQUEST_URI} ^/example/form(.*)
RewriteRule ^(.*)$ http://www.whosebug.com? [R=301,L]

它一直到 http://www.microsoft.com 因为 code=234 包含 code=2....