Generated Image

使用UrlRewritingNet.Dll实现URL 重写

UrlRewritingNet是一个可以在ASP.NET2.0里使用的实现url重写的一个组件,并且是开源的,使用这个控件,大家通过定义里面的规则就可以实现url重写。利用它开发人员可以很容易的实现Url重写的功能,提高开发效率.

 

·新建立一个网站项目,添加UrlRewritingNet.UrlRewriter.dll到bin目录下。

·在web.config里进行相关的配置






<?xml version="1.0"?>
<!-- 
    注意: 除了手动编辑此文件以外,您还可以使用 
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在 
    machine.config.comments 中,该文件通常位于 
    \Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
  
<configSections>
    
<section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"/>
  
</configSections>
  
<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="default.aspx" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
    
<rewrites>
      
<add name="Rewrite5" virtualUrl="^http\://(.*)/Shopping07.05.18/Detail(\d+).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="Detail.aspx?id=$2" rewrite="Domain" ignoreCase="true"/>
    
</rewrites>
  
</urlrewritingnet>
  
<appSettings/>

  
<connectionStrings/>
    
<system.web>
        
<!-- 
            设置 compilation debug="true" 将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。
        
-->
        
<httpHandlers>
            
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
        
</httpHandlers>
        
<compilation debug="true">
            
<buildProviders>
                
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
            
</buildProviders>
        
</compilation>
        
<!--
            通过 <authentication> 节可以配置 ASP.NET 使用的 
            安全身份验证模式,
            以标识传入的用户。 
        
-->
        
<authentication mode="Windows"/>
        
<!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。
            
        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>

        
-->
    
<httpModules>
      
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/>
    
</httpModules>
    
</system.web>
 

</configuration>


添加了
 <configSections>
    
<section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"/>
  
</configSections>
  
<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="default.aspx" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
    
<rewrites>
      
<add name="Rewrite5" virtualUrl="^http\://(.*)/Shopping07.05.18/Detail(\d+).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="Detail.aspx?id=$2" rewrite="Domain" ignoreCase="true"/>
    
</rewrites>
  
</urlrewritingnet>

一定不要忘记 还有一个地方要添加
    <httpModules>
      
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/>
    
</httpModules>

在下面的这个XML 中

     <add name="Rewrite5" virtualUrl="^http\://(.*)/Shopping07.05.18/Detail(\d+).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="Detail.aspx?id=$2" rewrite="Domain" ignoreCase="true"/>
我还是有几个地方不太明白 就是 这个Shoopping070518 是项目工程的名字 不能改,后面的 Detail.aspx?id=$2 中
$2 不明白是什么意思

高手帮帮忙讲讲吧

因为这个id参数 是从数据库中调的 是个 integer 所以 我使用了 正则表达好式 \d+

就这样 我就实现了 URL 重写
原先的 
http://localhost:18712/Shopping07.05.18/Detail?id=72.aspx
重写成了
http://localhost:18712/Shopping07.05.18/Detail72.aspx

UrlRewritingNet.UrlRewriter.dll 可从其官方网站下载:http://www.urlrewriting.net
posted @ 2007-05-21 00:48  桂圆  阅读(1266)  评论(1编辑  收藏  举报