UrlRewriter实现.NET的URL重写

首先下载安装MSDNURLRewriting.msi,链接地址http://pan.baidu.com/s/1c0pRnTu。

在安装目录下找到RewriterTester\bin\URLRewriter.dll添加引用到自己的项目。

更改配置文件web.config,在<configuration> </configuration>结点之内, <system.web> </system.web>节点之前,添加如下节点:

 <RewriterConfig>

    <Rules>

      <RewriterRule>       // 伪装的URL,可以将html更改成任意的,如:jsp,php,asp,aspx等

        <LookFor>~/news(.+).html</LookFor>        // 实际的URL,$1表示第1个正则表达式(.+)所表示的参数,以此类推,$n表示第n个正则表达式表示的参数

        <SendTo>~/WebForm1.aspx?id=$1</SendTo>      <RewriterRule> 

      </RewriterRule>

        <LookFor>~/new/(.+)/(.+).aspx</LookFor>

        <SendTo>~/WebForm1.aspx?id=$1&amp;keyword=$2</SendTo>

      </RewriterRule>

    </Rules>

  </RewriterConfig>

在<system.web></system.web>节点之内添加:

 

<httpHandlers>

      <add verb="*" path="*.html"

            type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

      <add verb="*" path="*.aspx"

            type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

 </httpHandlers>

 

 

 

前台的HTML代码可以写为:

<a href="/news11101.html">真实地址:WebForm1.aspx?id=11101</a>
<a href="/new/909990/abcd.aspx">真实地址:WebForm1.aspx?id=909990&keyword=abcd</a>
// 甚至可以写成这样:
<a href='/news<%#DataBinder.Eval(Container.DataItem,"ID") %>.html'>真实地址:WebForm1.aspx?id=<%#DataBinder.Eval(Container.DataItem,"ID") %></a>
 
 

你可能感兴趣的:(urlrewrite)