2016-05-13 67 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

下次請將它更新爲您的問題或提出一個新問題,而不是添加爲另一個答案。 –