在IIS托管服務中設置Rewrite重定向到webapi接口


最近公司遇到這樣一個問題。公司以前使用一個SiteServer CMS開源框架來搭建網站,是以asp.net開發的,並且托管在IIS中。其中出現了一個問題,就是用ajax訪問不了這個框架后台的webapi接口,報404錯誤。當時還以為是模塊處理程序的問題,測試了多遍,還是找不出原因。況且公司運營這個網站有個好幾年了,里面的文件眾多,光容量就有幾十個G,不可能說重構就重構吧?自己又有眾多業務在身,沒有那么多時間。好吧,我把這個框架的bin目錄里面重要的dll文件拷貝過來,新建一個工程項目,然后發布到服務器上,專門用作webapi站點,接下來就在以前那個站點下用Rewrite重定向模塊來把前端需要訪問的webapi接口重定向到這個新建的webapi站點,這樣可以暫時解決這個問題。

Url Rewrite Module安裝程序可以去這個地址下載:https://www.iis.net/downloads/microsoft/url-rewrite

Url Rewrite Module的使用可以參考這篇文章:https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/using-url-rewrite-module-20

rewrite重寫模塊需要包含在system.webServer節點中,其配置如下圖所示:

關鍵名詞釋義:

PATH_INFO:表示一個url地址的path部分;

{R:1}:這個和正則表達式的捕獲一樣,1代表那個被捕獲的括號里面的字符串的索引;

這個配置中最關鍵的要屬action節點的redirectType屬性,如果是其他屬性值,則不能重定向post方法的接口,只會重定向get方法,如果定義為Temporary值,則可以重定向post方法的接口

 

后記:

接口出現404的結果,是因為缺少了Global.asax文件,補上就可以了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM