• httpModules httphandle


    httpModules httphandle

     

    最近要给客户迁移他的网站,因为之前有独立的服务器,可以设置iis绑定空主机头,所有url可以实现无限子域名,但是现在要更换服务器到虚拟主机上,就不能绑定空主机头了,但是之前的子域名必须保证还可以访问.

    后来就想到可以利用HTTPmodules来实现一个url的转发.顺便再详细了解一下他们的概念.

     

    1.httpModules(Http模块,可以在页面处理前后、应用程序初始化、出错等时候加入自己的事件处理程序)

        

    2.Httphandle(处理具体后缀的文件)

     

    3. HttpHandlerFactory (用来创建Http处理程序,创建的同时可以附加自己的事件处理程序)

     

    <add name="ModuleName"

    type=".NET Class, Assembly [,Version=version number]

    [,Culture=culture] [,PublicKeyToken=token]"/>

     

    属性

    属性

    说明

    name

    必选的属性。

    为模块提供一个好记的名称,这使您可为 global.asax 文件内的模块事件关联一个事件处理程序。

    type

    必选的属性。

    指定由版本、程序集和公钥标记组成的逗号分隔的类/程序集组合。ASP.NET 首先在应用程序的专用 \bin 目录中搜索程序集 DLL,然后在系统程序集缓存中搜索程序集 DLL

     

     

    Machine.config是在IIS第一次访问ASP.net时

    Web.config 是在第一次访问虚拟目录所代表的应用程序时加载

    还有Web.config 发生变化时

     

    代码如下:

    public class UrlHttpModule : IHttpModule

    {

    public void Init(HttpApplication application)

    {

    application.BeginRequest += new EventHandler(Application_BeginRequest);

    }

     

    private void Application_BeginRequest(object sender, EventArgs e)

    {

     

    HttpApplication application = (HttpApplication)sender;

    HttpContext context = application.Context;

    HttpRequest request = application.Request;

    HttpResponse response = application.Response;

     

    string[] url = request.Url.Host.Split('.');

    if (url.Length == 4)

    {

    response.Redirect("http://www.xxx.com/Merchant/?domain=" + url[1]);

    }

     

    //response.Write(request.Url.Host + url.Length);

     

    //response.Redirect("/");

    }

     

    public void Dispose()

    {

     

    }

    }

  • 相关阅读:
    基于jquery 的插件,让IE支持placeholder属性
    MongoDB入门_MongoDB安装与配置
    MongoDB入门_MongoDB特色
    MongoDB入门_相关网站
    MongoDB入门_学习目标
    Shell编程
    redis数据类型及基本命令
    redis配置文件详解
    redis命令
    安装运行redis
  • 原文地址:https://www.cnblogs.com/xinzhyu/p/1546503.html
Copyright © 2020-2023  润新知