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>
 
 
posted @ 2015-04-11 22:01  落一叶而知秋  阅读(679)  评论(1编辑  收藏  举报