iis5.1/6.0/7.0+ 配置url重寫 無副檔名偽靜態
最近在搞url重寫 遇到iis 無副檔名及html對映問題 供後人檢視
因為考慮功能比較多(URLRewriter元件有些功能滿足不了要求)所以就用了HttpModule方法重寫。
iis5.1
新增應用程式對映 .* (注意 這種方法只有5.1中可以)到 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 確定檔案是否存在去掉 即可
iis6.0
搜了大量文章 都不可以 ,終於看到一篇文章 在萬用字元應用程式對映插入isapi.dll檔案對映 如圖:
重新啟動iis 目錄對映就起作用了(據說很耗伺服器資源)
iis7.0+
下面來說 iis7.0+以上的 版本 這個比較繁瑣 但是很簡單 不像 iis6.0我找了很久才找到方法
1) 首先新建一個應用程式池,名稱任意,比如:Myweb,託管管道模式先暫時設定為整合模式;
2) 部署好站點,並將此站點的應用程式池設定為Myweb;
3) 選中站點,切換到功能試圖,找到 "伺服器元件"-> "處理程式對映",雙擊之後,在開啟視窗右側的操作欄目下做如下設定:
4)"新增指令碼對映":請求路徑 .html ,可執行檔案選擇 C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll ,名稱隨意;
5)"新增萬用字元指令碼對映":請求路徑 * ,可執行檔案為:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,名稱隨意;
6)"新增託管處理程式":請求路徑*,可執行檔案:System.Web.UI.PageHandlerFactory,名稱隨意;
7) 開啟站點切換到功能試圖,找到 "伺服器元件"->"模組",雙擊之後,在開啟視窗右側的操作欄目中,點選"新增託管模組",型別
設定自己的HttpModel 模組,並且把"僅針對向asp.net 應用程式或託管處理程式發出請求呼叫" 選中;
8)最後,找到我們第一步建立的應用程式池Myweb,將託管管道模式設定為經典模式。
重新啟動 網站 檢視
原文:http://www.cnblogs.com/diose/archive/2013/02/21/2920324.html
重啟之後如出現以下問題:
解決方案:IIS的應用程式池許可權不夠,應用程式給localsystem賬號許可權即可。
以客戶的伺服器系統2003sp2為例,修改步驟如下: 控制面板---管理工具--Internet 資訊服務(IIS)管理器--應用程式池---Myweb--設定---標識---修改為:本地系統---應用---確定-電腦重啟
參考:http://www.cnblogs.com/sunxi/p/3356719.html