UrlRewritingNet使用方法

URL重写好处有很多,如有利于SEO、便于记忆、隐藏真实路径使安全性提高、便于更新等等。本文概要描述了各种URL重写的实现。
ASP.NET 2.0 中实现URL重写有很多方法,如:Global.asax中捕获用Application_BeginRequest请求,再用HttpContext类的Rewrite方法或Server.Transfer方法实现重写;自己实现IHttpModule实现重写;还有的利用服务器的404错误引导到新的页面实现重写;最后就是用组件实现重写(基本原理大多也是实现IHttpModule、IHttpHandler接口处理请求)。
如果自己处理请求,实现起来麻烦,特别是在大项目中,做好使用组件实现。网上有很多开源或免费的实现URL重写的组件,选择余地特别大。当初我选择的标准是小巧、快速、实现常用的URL重写功能。经过比较选择了只有32KB大小的UrlRewritingNet
查看其文档主要功能有以下一些:

 

1.基于正则表达式的重写
2.支持Themes和母版页
3.支持输出缓存
4.支持信任级别为"Medium"的使用环境
5.支持Postback
6.支持无Cookie的Session
7.运行时添加、修改改写规则
8.容易安装使用


OK!功能完全够用,就选他了!

Web.config中的配置:

 

<configuration> 
  
<configSections> 
    
<section name="urlrewritingnet"   
             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="RewritePhoto" virtualUrl="^~/(\d+).aspx" 
           rewriteUrlParameter
="ExcludeFromClientQueryString" 
           destinationUrl
="~/Default.aspx?ID=$1" 
           ignoreCase
="true" /> 
      
<!--更多重写规则--> 
    
</rewrites> 
  
</urlrewritingnet> 
    
<appSettings/> 
    
<connectionStrings/> 
    
<system.web> 
      
<httpModules> 
        
<add name="UrlRewriteModule" 
           type
="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" /> 
      
</httpModules> 
        
<!-- 
             设置 compilation debug="true" 将调试符号插入 
             已编译的页面中。但由于这会 
             影响性能,因此只在开发过程中将此值 
             设置为 true。 
        
--> 
        
<compilation debug="true" /> 
        
<!-- 
             通过 <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> 
        
--> 
    
</system.web> 
</configuration>

posted on 2012-02-11 17:15  woshilee  阅读(282)  评论(0)    收藏  举报

导航