• 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生效。
    3.         <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>

    4. 经过以上的步骤之后,基本上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代码的时候,需要执行相应的操作。
  • 相关阅读:
    构造方法
    不死神兔
    类与对象
    成员变量和局部变量的区别
    this关键字的理解
    private关键字理解
    如何设置客户端证书
    有关中文的正则表达式
    Web和证书服务:建立电子商务外部网
    认证服务Web 网页循序渐进指南
  • 原文地址:https://www.cnblogs.com/bluecobra/p/2487543.html
Copyright © 2020-2023  润新知