• 使用HttpHandler来监控HTML页面请求


    最近要实现一个IIS7下的纯HTML页面的请求来源,由于诸多原因: 

    • 多个独立域名绑定到了一个website
    • 域名供应商不支持url forwarding
    • 想达到输入次域名后自动redirect到主域名,如:
    • 输入www.ccc.net后会redirectwww.aaa.com
    • 输入www.ddd.cn后会redirectwww.aaa.com

    所以试着做了个html handler

    步骤:

    1. 设置目标网站的application pool模式为integrate
    2. 编写一个.NET 2.0HttpHandler来处理请求(此处是*.html文件的请求)
    3. public class UrlVerify : IHttpHandler
          {
              public bool IsReusable
              {
                  get { return true; }
              }

              const string mainHostName = "www.aaa.com";
              public void ProcessRequest(HttpContext context)
              {
                  if (context.Request.Url.Host.ToLower() != mainHostName)
                  {
                      string url = GenerateMainSiteUrl(context.Request.Url.AbsoluteUri, context.Request.RawUrl);
                      context.Response.Redirect(url, true);
                  }
                  else
                  {
                      context.Response.WriteFile(context.Request.PhysicalPath);
                  }
              }

              public string GenerateMainSiteUrl(string fullUrl, string virtualPath)
              {
                  string url = fullUrl;
                  string preUrl = "http";
                  if (url.Substring(05).ToLower() == "https")
                      preUrl = "https";

                  virtualPath = virtualPath.TrimStart('/');

                  url = string.Format("{0}://{1}/{2}", preUrl, mainHostName, virtualPath);
                  return url;
              }
          }
    4. 将编译后的dll文件放到目标网站的bin目录中
    5. 打开IIS7,找到目标网站,双击 Handler Mappings 图标
    6. 在右上方click Add Managed Handler链接
    7. OK

    迷惑:

    上述组件是用.net2.0编写的,我用.net4.0也试了一下,但是总是报错,不知道怎么回事,望有经验的兄弟告诉我一下。

  • 相关阅读:
    Apache2支持py,pl,cgi,sh
    javascript利用Active操作本地文件
    桥接模式下的手机-电脑-开发板连接
    Django signal
    mysql改变表的编码字符集(utf8改为utf8mb4)
    Mysql 多表关联查询
    Python unicode转义字符u的处理
    How to filter a DateTimeField by date in Django?
    python闭包变量迟邦定
    Ubuntu16.04安装&创建Python虚拟环境
  • 原文地址:https://www.cnblogs.com/aarond/p/HandlerMapping.html
Copyright © 2020-2023  润新知