博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET HttpModule URL 重写 (一) 【Z】
阅读量:5859 次
发布时间:2019-06-19

本文共 2252 字,大约阅读时间需要 7 分钟。

大家好,又来和大家见面了,此次给大家带来的URL重写,关于URL重写是什么,有什么好处,如何重写,今天我和大家一起分享一下我的经验

一、URL重写

        URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程。举个例子来说,如果通过浏览器进来的URL是“UserProfile.aspx?ID=1”那么它可以被重写成 “UserProfile/1.aspx”。

二、URL重写优点

          1、有利于百度、谷歌等搜索引擎收录于抓取,如果你是网站优化高手的化,这就是基本功了。。。

          2、更具有可读性,伪装你的技术实现,让别人想攻击你都要有一定的难度!!!

三、如何URL重写

         1、ASP.NET实现一共有两种

                   a.利用HttpModule处理request请求中的URL

                   b.利用插件IIS Rewrite 组件实现URL重写

          2、HttpModule实现URL重写

                a.手写看一下HttpModule,下图清楚的描述了HttpModule在整个页面请求过程中处于的低位,HttpModule是动态请求必经之路啊。

  c.案例剖析,让你深入体会奥妙之处

              第一步:修改如下代码

               场景:有这样两个页面,数据列表页和数据详细页面,点击列表页数据进入详细页面,我们要做数据列表页面的连接做如下修改

               修改前:<asp:HyperLink ID="hkTitle" runat="server"

                     NavigateUrl='<%# Eval("Id","BookDetail.aspx?id={0}") %>'>数据标题</asp:HyperLink>

               修改后:<asp:HyperLink ID="hkTitle" runat="server"

                     NavigateUrl='<%# Eval("Id","BookDetail_{0}.html") %>'>数据标题</asp:HyperLink>

               第二步:创建HttpModule,代码如下

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// ///DemoModule 的摘要说明/// public class DemoModule:IHttpModule{    ///     /// 开始处理请求事件    ///     ///     ///     private void context_BeginRequest(object sender,EventArgs args)    {        //获取HttpApplication        HttpApplication application = sender as HttpApplication;        //获取用户请求的URL        string oldUrl = application.Request.RawUrl;        //如果请求中存在“BookDetail”字符进行处理请求        if (oldUrl.IndexOf("BookDetail") > 0)        {            //截取BookDetail之前位置的字符串            string newUrl = oldUrl.Substring(0, oldUrl.IndexOf("BookDetail"));            //请求的新字符串为"BookDetail.aspx?bid=XXXXXXXX"            newUrl = newUrl + "BookDetail.aspx?bid=" + oldUrl.Substring(oldUrl.LastIndexOf("_") + 1,                (oldUrl.IndexOf(".") - oldUrl.LastIndexOf("_") - 1));            //将请求中的URL进行重写            application.Context.RewritePath(newUrl);        }                  }    public void Dispose()    {        throw new NotImplementedException();    }    ///     /// 初始化事件    ///     ///     public void Init(HttpApplication context)    {        //关联请求开始事件        context.BeginRequest +=new EventHandler(context_BeginRequest);    }}

第三步:配置HttpModule,在web.config中如下配置

  第四步:体验效果吧 今天就说到这里吧,还有一个URL重写的方法,有时间完成,大家赶快体验一下吧!!!

 

原文:http://blog.csdn.net/songyuhongnannan/article/details/7493499

你可能感兴趣的文章
基于 Nest.js (nodejs 版的 spring ) 的 Notadd 2.0 Beta1 发布
查看>>
巧用这19条MySQL优化,效率至少提高3倍
查看>>
交换两个变量的骚操作
查看>>
React 出海应用 首屏加载时间从20S降到10S以下 血泪史
查看>>
promise的用法以及注意事项,看了这篇你就会了
查看>>
阿里云 Aliplayer高级功能介绍(八):安全播放
查看>>
从0到1快速构建基于create-react-app的脚手架
查看>>
【零基础】计算机网络技术
查看>>
Android进程间的通信 IPC(机制)Binder的原理和源码阅读
查看>>
Android之ContentObserver内容观察者的使用
查看>>
看完这个,Java IO从此不在难
查看>>
基于django的视频点播网站开发-step3-注册登录功能
查看>>
为什么通信企业都要主动拥抱百度AI?
查看>>
并发-7-同步容器和ConcurrentHashMap
查看>>
BigDecimal类
查看>>
Redis 集合和有序集合
查看>>
http请求头与响应头的应用
查看>>
零基础学习 Python 之列表
查看>>
使用leancloud实现迭代查询
查看>>
事件循环(the Event Loop)、宏任务(macrotask)、微任务(microtask)
查看>>