多个 QUERY_STRING 单独组合 QUERY_STRING
MULTIPLE QUERY_STRING COMBINED ALONE QUERY_STRING
我有一个重定向列表,其中许多与其他类似,但限制或多或少,例如:
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.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....
我有一个重定向列表,其中许多与其他类似,但限制或多或少,例如:
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.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....