使用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更好!

原文地址:https://www.cnblogs.com/xyyt/p/3978846.html