zoukankan      html  css  js  c++  java
  • 使用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更好!

  • 相关阅读:
    transform.forward和vector3.forward
    游戏开发数值公式
    类的大小
    c#扩展方法
    C# 线程本地存储 调用上下文 逻辑调用上下文
    DbCommandInterceptor抓取EF执行时的SQL语句
    C# 关键字const与readonly的区别
    Swagger(webapi自动生成接口说明文档)
    log4net配置
    JavaScript代码优化指南
  • 原文地址:https://www.cnblogs.com/xyyt/p/3978846.html
Copyright © 2011-2022 走看看