2017-07-03 40 views
0

我具有被重写到同一位置以下重写规则:QUERY_STRING重写顺序

http://test.com/finance/payroll/forms/salary-payment-form.shtml?staff=test-edu-trust - > TO - >https://www.test.com/finance/BBBB.shtml?staff=test-edu-trust

RewriteRule %{QUERY_STRING} ^staff=test-edu-trust$ 
RewriteRule ^/finance/payroll/forms/salary-payment-form.shtml$ https://www.test.com/finance/BBBB.shtml?staff=test-edu-trust[R=301,L,NC] 

http://test.com/finance/payroll/forms/wages-payment-form.shtml?staff=test-comm-rac - > TO - >https://www.test.com/finance/BBBB.shtml?staff=test-comm-rac

RewriteRule %{QUERY_STRING} ^staff=test-comm-rac$ 
RewriteRule ^/finance/payroll/forms/salary-payment-form.shtml$ https://www.test.com/finance/BBBB.shtml?staff=test-comm-rac[R=301,L,NC] 

问题是重写到同一位置 - https://www.test.com/finance/BBBB.shtml?staff=test-edu-trust

如果我改变规则的顺序如下然后他们最终改写到第一位置,以便:https://www.test.com/finance/BBBB.shtml?staff=test-comm-rac按如下:

RewriteRule %{QUERY_STRING} ^staff=test-comm-rac$ 
RewriteRule ^/finance/payroll/forms/salary-payment-form.shtml$ https://www.test.com/finance/BBBB.shtml?staff=test-comm-rac[R=301,L,NC] 

RewriteRule %{QUERY_STRING} ^staff=test-edu-trust$ 
RewriteRule ^/finance/payroll/forms/salary-payment-form.shtml$ https://www.test.com/finance/BBBB.shtml?staff=test-edu-trust[R=301,L,NC] 

这是怎么造成的规则的顺序只是重写第一个被定义为我认为QUERY_STRING会抓住这个并且将哪个url重写为?

+0

刚注意到我有RewriteRule,而不是RewriteCond中的QUERY_STRING! Do !!! – frodo

回答

0

只注意到我有RewriteRule,而不是RewriteCond中的QUERY_STRING! Do !!!