我一直在IIS中使用正则表达式进行重定向,这样如果有人访问/test01/
,它会将它们重定向到/test.asp?kw=test01
。但是,我仍然希望能够附加查询字符串,以便/test01/src=url
重定向到/test.asp?kw=test01&src=url
。
这很容易做到,但我想要的是他们可以使用/test01/src=url
或/test01/?src=url
,所以正则表达式足够聪明,可以忽略问号。
我一直在使用:^test01/(.*)
重定向到/test.asp?kw=test01&{R:1}
。我已经尝试了^test01/(\??)(.*)
,理解是问号允许忽略前面的字符,但这不起作用,我不确定如何处理这个问题。任何建议将不胜感激。
答案 0 :(得分:1)
尝试:
^test01/\??(.*)
否则,您的\??
是反向引用#1,您的查询字符串将成为反向引用#2。
<强>更新强>
也可能需要disable back-tracking,使用+
的另一个含义:
^test01/\??+(.*)
我不知道IIS是否支持此功能。并PHP's engine doesn't seem to need it。
答案 1 :(得分:0)
以下表达式应该有效。
^test01/[?]?(.*)