日期:2014-05-17  浏览次数:20747 次

求一地址重写的正则(.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,是没有问题的,后台也可以正常取到~