求一地址重写的正则(.Net)
我现在使用的规则是
C# code
<RewriterRule>
<!--列表规则-->
<LookFor>~/l-(.*)\.shtml$</LookFor>
<SendTo>~/list.aspx?q=$1</SendTo>
</RewriterRule>
当访问这样的地址的时候:/l-%E5%A6%88%E5%A6%88%E7%94%A8%E5%93%81.shtml 可以正常访问,
但是当访问:/l-SPERRY+.shtml 这样的地址的时候就无法访问了,就是说输入的关键字存在+号(地址栏出现加号,是因为输入了空格)的时候。
以上规则如果是在PHP中,完全正常,不知道是不是正则引擎不同所引起的!
请高人解释一下!
------解决方案--------------------再试试:
<RewriterRule>
<!--列表规则-->
<LookFor>~/l-([\s\S]*)\+?\.shtml$</LookFor>
<SendTo>~/list.aspx?q=$1</SendTo>
</RewriterRule>
------解决方案--------------------因为你的+被urldecode之后变成空格了,如果访问l-SPERRY%2B.shtml,是没有问题的,后台也可以正常取到~