记录rewrite url我之前不知道的地方

本文探讨了使用context.rewritePath()进行URL重写的方法,包括如何捕获静态资源请求及实现ARR扩展程序过程中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大部分url重写的需求是伪静态,当然有很多第三方开源组件,但是这种需求的核心方法其实就是context.rewritePath()

要是系统像ARR那样,用重写做代理和反向代理,一般的重写就不行了,context.rewritePath()的内部不允许跨站点的url。

你可能会想到实现自己的IHttpHandler,这样有个问题就是,静态资源的url没法重写。

那怎么办?

 

我通过查context.rewritePath()内部方法是:

     [DllImport("webengine4.dll", CharSet = CharSet.Unicode)]
        internal static extern int MgdRewriteUrl(IntPtr pRequestContext, string pszUrl, bool fResetQueryString);

这个方法的关键是怎么获取到当前请求上下文context的句柄?

静态资源重写的关键问题是怎么捕获到静态资源的请求?

 

 <system.webServer>
    <handlers>
      <remove name="StaticFile" />
这样就可以在IHttpHandler中捕获静态资源的请求了

 

我尝试实现ARR的扩展程序,注册GAC后,找不到注册的DLL

转载于:https://www.cnblogs.com/langu/p/5340337.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值