2016-05-13 69 views
1

我已经重定向的清单做,很多都是类似于别人,而是少跌多restrictives,例如:多QUERY_STRING联合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=2http://www.google.com/?code=2&category=5

你有什么建议的问题?

谢谢你。

回答

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] 
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] 
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因为代码= 234包含代码= 2 ....

+1

使用'的RewriteCond%{QUERY_STRING}代码= 2 $ '和'RewriteCond%{QUERY_STRING} code = 234 $'而不是'RewriteCond%{QUERY_STRING} ** code = 2 **'和'RewriteCond%{QUERY_STRING} ** code = 234 **'。 –

+0

我已经更新了答案。请检查一下。 –

+0

下次请将它更新为您的问题或提出一个新问题,而不是添加为另一个答案。 –