我使用的是微软的dll
在webconfig里是这样设置的
<configSections>
    <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />  </configSections>
  <RewriterConfig>
    <Rules>
      <RewriterRule>
        <LookFor>~/Group/(.*).aspx</LookFor>
        <SendTo>~/Group/GroupInfo.aspx?GroupID=$1</SendTo>
      </RewriterRule>
    </Rules>
  </RewriterConfig><httpHandlers>
      <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
    </httpHandlers>问题是
我输入http://xxx.com/Group/17.aspx是可以重写到
http://xxx.com/Group/GroupInfo?GroupID=17
但是我点Group目录下别的页面时都会报错,不知道为什么

解决方案 »

  1.   

    如果我这样写的话
      <LookFor>~/Group/(.*).aspx</LookFor>
            <SendTo>~/Group/GroupInfo.aspx?GroupID=$1</SendTo>
    在点击Group目录下的其他页面,会不会出什么问题
      

  2.   

    规则错了,改成:
       <LookFor>~/Group/(\d+?).aspx</LookFor>
      

  3.   

    规则错了,改成:
       <LookFor>~/Group/(\d+?).aspx</LookFor>
    ________________________
    请问这个正则是啥意思啊,我不大懂正则
      

  4.   

    photoplan() ( ) 信誉:100 
    按你的方法就可以了,谢谢,
    顺便问一下,重写了之后,如果在当前页面有提交的话,地址栏的url又回到去了,怎么能保持状态呢
      

  5.   

    <LookFor>~/Group/(.*).aspx</LookFor>  与任何 .aspx 匹配,比如,~/Group/abc.aspx 也匹配,与 ~/Group/zaspx 也匹配,<LookFor>~/Group/(\d+?).aspx</LookFor> 只和数字匹配,比如,~/Group/abc.aspx 不匹配,~/Group/123.aspx 则匹配不过最好改成  ~/Group/(\d+?)\.aspx 这样更精确一些
      

  6.   

    重写之后如果有 postback,url就原型毕露,因为html标记里,form 的 action 属性是原来的url。有两个解决办法,一是用 ActionlessForm,现成的组件。但在vs2005 里会遇到一些设计时问题。还有一种办法是给 response 对象加一个 filter,自己用正则滤掉 form 的 action 属性