我有一个要做的重定向列表,其中许多与其他重定向相似,但限制较少或更多,例如:
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或http://www.google.com/?code=2&category=5
你有什么建议吗?
谢谢你。
答案 0 :(得分:1)
您可以使用以下规则重定向您的网址:
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]
答案 1 :(得分:1)
如果是
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.stackoverflow.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.stackoverflow.com? [R=301,L]
答案 2 :(得分:0)
还有其他问题:
如果你有多个像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.stackoverflow.com? [R=301,L]
它始终是http://www.microsoft.com,因为code = 234包含code = 2 ....