ASP.NET UrlRewrite简单学习总结(转)

Url Rewrite实现方式

  1. 实现的方式有两种:IIS级别和ASP.NET级别。
  2. IIS级别需要在IIS上进行操作,不过能够支持ASP.NET和PHP、ASP之类的UrlRewrite。IIRF 是个不错的选择,免费开源的IIS UrlRewrite组件。
  3. ASP.NET级别的则比较简单。无需对IIS进行设置,虽然性能会比较差一点,可是这个在低负荷基本上可以忽略不计。UrlRewriter.NET是个不错的ASP.NET UrlRewrite主机,可配置性非常强,具体可以查看它的帮助文档,文档虽然是英文的,可是比较简单,基本大家都是能看得懂的。

UrlRewriter.NET配置

  1. 可以去UrlRewriter.NET的官网下载组件。我这里下载的是2.0rc1的版本,解压后将.bin文件复制到项目的bin文件夹中。
  2.  对项目的web.config进行配置。 
    在<configuration>中增加以下配置节,这个是告诉UrlRewriter.NET相关的mapping配置在哪里。

        <configSections>
            <section name="rewriter"
                     type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler,
                     Intelligencia.UrlRewriter" />
        </configSections>

    在<system.web>增加如下内容,添加一个httpModules,这个是固定的,作用是让UrlRewriter.NET生效。

        <httpModules>
            <add name="UrlRewriter"
                 type="Intelligencia.UrlRewriter.RewriterHttpModule,
               Intelligencia.UrlRewriter" />
        </httpModules>

在<configuration>中增加一个<rewriter> ,这个是映射的具体配置,具体如何配置,请移步到官方帮助文档。我的一个简单配置如下:

    <rewriter>
        <rewrite url="^/UrlMappingTest/page/(\w+)$" to="~/Default.aspx?page=$1" processing="stop" />
    </rewriter>

经过以上的步骤之后,基本上UrlRewrite已经差不多了。不过由于ASP.NET的原因,当我们页面回传(例如触发一个Botton的Click事件)之后,地址栏的地址便会改变,变成映射的地址了。

利用ControlAdapter改进UrlRewrite

  1.  在项目的App_Code文件夹下新建一个类文件FormRewriterControlAdapter.cs,内容如下:

 

 


  1. 在项目的App_Browsers文件下新建一个Form.browser文件,内容如下

    <browsers>
        <browser refID="Default">
            <controlAdapters>
                <adapter controlType="System.Web.UI.HtmlControls.HtmlForm"
                         adapterType="FormRewriterControlAdapter" />
            </controlAdapters>
        </browser>
    </browsers>
     

  2. FormRewriterControlAdapter 类的作用是从写ASP.NET页面中默认Form的Action属性,使他变得和UrlRewrite后的的Url一致。而Form.browser则起 到了告诉ASP.NET在生成Form的HTML代码的时候,需要执行相应的操作。
posted on 2012-05-07 15:59 小李弯刀 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/bluecobra/archive/2012/05/07/2487543.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值