读书人

求一地址重写的正则(.Net)解决思路

发布时间: 2012-09-27 11:11:17 作者: rapoo

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

读书人网 >C#

热点推荐