記錄rewrite url我以前不知道的地方

大部分url重寫的需求是僞靜態,固然有不少第三方開源組件,可是這種需求的核心方法其實就是context.rewritePath()web

要是系統像ARR那樣,用重寫作代理和反向代理,通常的重寫就不行了,context.rewritePath()的內部不容許跨站點的url。url

你可能會想到實現本身的IHttpHandler,這樣有個問題就是,靜態資源的url無法重寫。spa

那怎麼辦?代理

 

我經過查context.rewritePath()內部方法是:code

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

這個方法的關鍵是怎麼獲取到當前請求上下文context的句柄?blog

靜態資源重寫的關鍵問題是怎麼捕獲到靜態資源的請求?資源

 

 <system.webServer>
    <handlers>
      <remove name="StaticFile" />
這樣就能夠在IHttpHandler中捕獲靜態資源的請求了

 

我嘗試實現ARR的擴展程序,註冊GAC後,找不到註冊的DLLrem

相關文章
相關標籤/搜索