首页 > 代码库 > 使用HttpModule实现网址重写

使用HttpModule实现网址重写

1.  修改配置文件:

 <httpModules>        <</span>add name="html" type="HttpModule"/></httpModules>

2.  编写HttpModule类:

using System;using System.Collections.Generic;using System.Linq;using System.Web;///URL重写  的摘要说明///1.创建类文件 HttpModule.cs///2.实现IHttpModule接口的方法public class HttpModule : IHttpModule{        //清理资源        public HttpModule(){}         public void Dispose(){}        ///        /// 初始化        ///        ///        public void Init(HttpApplication context)        {            //3.在初始化方法中添加事件处理方法            context.BeginRequest += new EventHandler(BeginRequest);            context.EndRequest += new EventHandler(EndRequest);        }         //4. 编写开始处理请求代码         public void BeginRequest(object sender, EventArgs e)        {            HttpApplication app = sender as HttpApplication;            //app.Response.Write("开始处理请求!");            //4.1 截获请求网址            string url = app.Request.RawUrl;            //4.2 判断网址是否符合要求,判断是否进行重发到指定页面            if (url.LastIndexOf(".html") > 0)            {                //转发到指定页面                app.Server.Transfer("~/HttpMoudle/UrlReWrite.aspx");            }        }         public void EndRequest(object sender, EventArgs e)        {            HttpApplication app = sender as HttpApplication;            //app.Response.Write("结束处理请求!");        }    }

3.再次访问.html结尾的网址是,就会跳转到指定的页面,当然,也可以截取字符串,仅仅把.aspx替换为.html更好!

使用HttpModule实现网址重写