http://localhost:34192/UI/Products/New-arrival 
http://localhost:34192/UI/Products.aspx?title=New-arrival
我想把上面的地址重定向到下面那个地址,请问在配置文件里面的正则表达式应该怎么写。我是新手,请各位大侠指教

解决方案 »

  1.   

    http://apps.hi.baidu.com/share/detail/5308118
      

  2.   

          <RewriterRule>
             <LookFor>~/UI/Products/([\w\-]+)</LookFor>
             <SendTo>~/UI/Products.aspx?title=$1</SendTo>
          </RewriterRule>不过这是目录映射 需要特别配置一下 以下是摘选的部分介绍 你的属于第三种情况:--------------华丽分割线-----------------下面介绍的是微软的URLRewriter方法   1.首先下载URLRewriter.dll,下载之后直接复制到你的网站的bin目录中   
    2.配置你的web.config文件   
    在<configuration>节点下加   
    <configSections>   
      <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />   
      </configSections>   <RewriterConfig>   
      <Rules>   
      <!--一下三个是我自己写的测试的,当然你可以写很多个 -->   
      <!--这个是把http://localhost:2001/default.aspx?id=1 生成http://localhost:2001/d1.aspx 这种页面 -->   
      <RewriterRule>   
      <LookFor>~/d(\d{0,5})\.aspx</LookFor>   
      <SendTo>~/default.aspx?ID=$1</SendTo>   
      </RewriterRule>   
      <!--这个是把http://localhost:2001/article.aspx?id=1 生成http://localhost:2001/1/a.html 这种页面 -->   
      <RewriterRule>   
      <LookFor>~/(\d{0,5})/a\.html</LookFor>   
      <SendTo>~/article.aspx?id=$1</SendTo>   
      </RewriterRule>   
      <!--这个是把http://localhost:2001/test.aspx?id=1 生成http://localhost:2001/1/ 这种页面 -->   
      <RewriterRule>   
      <LookFor>~/(\d{0,5})/</LookFor>   
      <SendTo>~/test.aspx?id=$1</SendTo>   
      </RewriterRule>     </Rules>     </RewriterConfig>   同时还要在<system.web>配置节下加   
      <httpHandlers>   
      <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />   
      <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />   
      <add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />     </httpHandlers>   3.好了,基本上就可以了,但是还有重要一点千万不要忘了   
    以上有三种情况的url生成   
    针对第一种情况,第一第二步配置完就可以实现了   
    可对第二种和第三种url情况,还需要进行一下配置   
    先说第二种情况:因为咱们重写的是.html后缀   
    所以需要在iis中进行.html映射,方法如下:   
    右击站点-属性-主目录-配置   
    在打开页面找扩展名.aspx,双击之后弹出窗口内复制可执行文件   
    一般是C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll   
    复制完之后点添加在弹出窗口把内容复制到可执行文件   
    扩展名.html当然这个你可以任意写了,不过要和   
    <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />   
    保持一致.   
    同时去掉确认文件是否存在,确定即可   
    完成之后输入http://localhost:2001/1/a.html   
    是不是就可以访问了?爽吧   下面介绍第三种情况,生成目录   
    这里面稍微有点复杂,同样配置iis   
    还是在那个弹出窗口,点插入   
    把复制的文件即C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll   
    复制到可执行文件框内,同时去掉确认文件是否存在,确定即可   
    这样输入http://localhost:2001/1/,是不是就可以访问了?嘿嘿   
    可能读者会有疑问了:现在设置的这个和第二种设置的有什么区别?   
    现在设置的其实是进行*映射,即把所有的文件都进行url重写处理程序处理   
    这时其实就可以把.html 以及自带的.aspx等映射去掉,同样可以生成.html/.aspx/ url   
    好了,如果还想其他的扩展大家就尽情扩展吧。