使用UrlRewritingNet.Dll实现URL 重写

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

 

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

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






None.gif <? xml version="1.0" ?>
None.gif
<!--  
None.gif    注意: 除了手动编辑此文件以外,您还可以使用 
None.gif    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
None.gif     “网站”->“Asp.Net 配置”选项。
None.gif    设置和注释的完整列表在 
None.gif    machine.config.comments 中,该文件通常位于 
None.gif    \Windows\Microsoft.Net\Framework\v2.x\Config 中
None.gif
-->
None.gif
< configuration >
None.gif  
< configSections >
None.gif    
< section  name ="urlrewritingnet"  restartOnExternalChanges ="true"  requirePermission ="false"  type ="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" />
None.gif  
</ configSections >
None.gif  
< urlrewritingnet  rewriteOnlyVirtualUrls ="true"  contextItemsPrefix ="QueryString"  defaultPage ="default.aspx"  defaultProvider ="RegEx"  xmlns ="http://www.urlrewriting.net/schemas/config/2006/07" >
None.gif    
< rewrites >
None.gif      
< add  name ="Rewrite5"  virtualUrl ="^http\://(.*)/Shopping07.05.18/Detail(\d+).aspx"  rewriteUrlParameter ="ExcludeFromClientQueryString"  destinationUrl ="Detail.aspx?id=$2"  rewrite ="Domain"  ignoreCase ="true" />
None.gif    
</ rewrites >
None.gif  
</ urlrewritingnet >
None.gif  
< appSettings />
None.gif
None.gif  
< connectionStrings />
None.gif    
< system .web >
None.gif        
<!--  
None.gif            设置 compilation debug="true" 将调试符号插入
None.gif            已编译的页面中。但由于这会 
None.gif            影响性能,因此只在开发过程中将此值 
None.gif            设置为 true。
None.gif        
-->
None.gif        
< httpHandlers >
None.gif            
< 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" />
None.gif        
</ httpHandlers >
None.gif        
< compilation  debug ="true" >
None.gif            
< buildProviders >
None.gif                
< add  extension =".rdlc"  type ="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
None.gif            
</ buildProviders >
None.gif        
</ compilation >
None.gif        
<!--
None.gif            通过 <authentication> 节可以配置 ASP.NET 使用的 
None.gif            安全身份验证模式,
None.gif            以标识传入的用户。 
None.gif        
-->
None.gif        
< authentication  mode ="Windows" />
None.gif        
<!--
None.gif            如果在执行请求的过程中出现未处理的错误,
None.gif            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
None.gif            开发人员通过该节可以配置
None.gif            要显示的 html 错误页
None.gif            以代替错误堆栈跟踪。
None.gif            
None.gif        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
None.gif            <error statusCode="403" redirect="NoAccess.htm" />
None.gif            <error statusCode="404" redirect="FileNotFound.htm" />
None.gif        </customErrors>
None.gif
None.gif        
-->
None.gif    
< httpModules >
None.gif      
< add  name ="UrlRewriteModule"  type ="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
None.gif    
</ httpModules >
None.gif    
</ system.web >
None.gif 
None.gif
None.gif
</ configuration >
None.gif


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

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

在下面的这个XML 中

None.gif       < add  name ="Rewrite5"  virtualUrl ="^http\://(.*)/Shopping07.05.18/Detail(\d+).aspx"  rewriteUrlParameter ="ExcludeFromClientQueryString"  destinationUrl ="Detail.aspx?id=$2"  rewrite ="Domain"  ignoreCase ="true" />
None.gif
我还是有几个地方不太明白 就是 这个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

转载于:https://www.cnblogs.com/zbqy/archive/2007/05/21/753633.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值