mod_rewrite rule:如果URL包含某个原始字符串

时间:2014-11-21 03:40:59

标签: apache mod-rewrite

我的客户端一直在编辑网站导航的结构,这导致一些mod_rewrite问题。我怎么能在apache中制定这个规则:

实际的人是

/AuthCont?FORMSGROUP_ID__=AuthenticationFG&__START_TRAN_FLAG__=Y&FG_BUTTONS__=LOAD&ACTION.LOAD=Y&AuthenticationFG.LOGIN_FLAG=1&T_ID=ND

但如果用户手动将AuthenticationFG.LOGIN_FLAG=1更改为AuthenticationFG.LOGIN_FLAG=2AuthenticationFG.LOGIN_FLAG=3,则应重写为实际AuthenticationFG.LOGIN_FLAG=1友好帮助

1 个答案:

答案 0 :(得分:0)

来自:https://wiki.apache.org/httpd/RewriteQueryString

  

修改查询字符串:访问/ path时,将查询字符串中的任何单个val实例更改为other_val。请注意,%1和%2是对前一个RewriteCond中正则表达式的匹配部分的反向引用。

RewriteCond %{QUERY_STRING} ^(.*)val(.*)$
RewriteRule /path /path?%1other_val%2

所以你可以尝试例如:

 RewriteCond %{QUERY_STRING} ^(.*)LOGIN_FLAG=2(.*)$
 RewriteCond %{QUERY_STRING} ^(.*)LOGIN_FLAG=3(.*)$
 RewriteCond %{QUERY_STRING} ^(.*)LOGIN_FLAG=4(.*)$
 # and so on for all the numbers...
 # then:
 RewriteRule /AuthCont /AuthCont?%1LOGIN_FLAG=1%2

修改

hrmm好吧试试这个:

 RewriteCond %{QUERY_STRING} ^(.*)LOGIN_FLAG=(.*)$
 RewriteRule ^(.*)$ http://your_domain_here.com/AuthCont?FORMSGROUP_ID__=AuthenticationFG&__START_TRAN_FLAG__=Y&FG_BUTTONS__=LOAD&ACTION.LOAD=Y&AuthenticationFG.LOGIN_FLAG=1&T_ID=ND? [L]