• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NETUrlRewrite简单学习总结(转)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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代码的时候,需要执行相应的操作。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
asp.net使用mysql数据库,OUTparameter返回值为null的bug发布时间:2022-07-10
下一篇:
ASP.NET中26种性能优化方法发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap