vc6用isapi的filter实现url重定向功能

用vc实现url重定向功能非常简单 ,当然用.net更简单一些,但是asp3并不能用.net方法,最近刚好工作中又需要这类技术

最近参考了第五版的visual c++技术内幕 第35章Microsoft internet信息服务器(IIS)编程,里面讲到了一些isapi技术,但是里面对于过滤器(filter)讲得很少,很难理解如何去用url的rewriter技术

不过在实践的时候发现了一个很好玩的单词onurlmap 当时猜测这个overload的函数是不是可以实现重定向呢?于是打开msdn手册,搜索了一下,发现还真的可以.现在就说一下,如果去写这种代码

首先在vc6中新建工程->选择isapi extension wizard->选在isapi filter,把下面的那个isapi的扩展的勾去了->然后除了默认选项的勾以外,要多加一个url mapping requests的勾也要选上

在OnUrlMap这个函数里输入
  if (strstr (pMapInfo->pszURL, "DoRedirect"))
   {
      CHAR szRedirect [256];
      // replace www.microsoft.com with desired server
      sprintf(szRedirect, "Location: http://%s/r/n/r/n", "www.microsoft.com");
      pCtxt->ServerSupportFunction ( SF_REQ_SEND_RESPONSE_HEADER,
            (LPVOID) "302 Redirect",
            (DWORD *) szRedirect,
            0 );
      // Print a message to the debug window
      ISAPITRACE1 ("Redirecting to: %s/n", szRedirect);
      // we are done with this request
      return SF_STATUS_REQ_FINISHED_KEEP_CONN;
   }
   // URL did not contain a DoRedirect string.
   return SF_STATUS_REQ_NEXT_NOTIFICATION;

生成dll,在iis里的默认网站的属性里在isapi过滤器中选择那个dll

然后在ie或者其他的网页浏览器里输入http://localhost/DoRedirect 然后你会看到什么?呵呵,没错就是微软的主页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值