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

posted on   逍遥云天  阅读(479)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示