使用微软URLRewriter实现URL重写

2016/12/29 15:22
阅读数 4
1、下载安装MSDNURLRewriting.msi。

          开源代码http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi,下载下来后编译一下就可以了。编译后得到URLRewriter.dllActionlessForm.dll两个Dll。

   2、在ASP.NET项目的web.config中配置使用。

     在<configuration>下面添加一段代码:

 

<configSections> 

<section name=\"RewriterConfig\" type=\"URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter\"/>

</configSections>


     

 

在<system.web>下面添加一段代码:

<httpHandlers>
      <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
</httpHandlers> 
<RewriterConfig>
    <Rules>
      <RewriterRule>
        <LookFor>~/index.html</LookFor>
        <SendTo>~/Index.aspx</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/(/d+)-(.*).html</LookFor>
        <SendTo>~/Products/ProductsList.aspx?id=$1&SelectValue=$2</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/(/d+)/(.*).html</LookFor>
        <SendTo>~/Products/ProductsDetails.aspx?ID=$1&CASNO=$2</SendTo>
      </RewriterRule>
    </Rules>
</RewriterConfig>


 

       其中LookFor是地址栏显示的地址,SendTo是真实的反问地址。当页面带有多个参数的时候,如第一个用$1来表示,第二个用$2来表示,以此类推,而参数于参数中的链接符由\"&\"改为\"&amp;\"。LookFor中的(/d+)这些就是正则表达式的写法了。

       在页面中的链接也就要修改了,比如<a href=\"products/productsList.aspx?id=111&SelectValue=a\">产品列表</a>就需要修改为<a href=\"111-a.html\">产品列表</a>。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部