一、下載一個 UrlRewriter 的動態鏈接庫
Intelligencia.UrlRewriter.dll
二、添加引用並在web.config中進行如下配置
1.在web.config中註冊所應用的dll文件
- <httpModules>
- <add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter"/>
- </httpModules>
2.添加configSections節點
- <configSections>
- <section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
- </configSections>
3.進行重寫規則的配置
- <rewriter>
- <rewrite url="~/about.html$" to="~/About.aspx" />
- <rewrite url="~/students/(\d+)/(\d+).html" to="~/Default.aspx?classid=$1&age=$2"/>
- </rewriter>
意思是利用url的規則來重寫to所制定的地址,其中 (\d+) 表示參數, $n 表示是第幾個參數,具體的可以根據自己的需要利用正則來匹配。 完成以上的步驟後當你在地址欄中輸入http://localhostxxx/about.html時將鏈接到About.aspx頁面,當輸入http://localhostxxx/students/12/19時將鏈接到Default.aspx頁面傳遞的參數爲classid=12&age=19。
三、做完了以上的步驟後就完成了URL重寫的第一步。
當頁面有服務器控件觸發回傳的時候會發現報了黃頁,這是由於頁面中form表單的原因,這個時候只需要進行下載一個ActionlessForm.dll然後在項目中引用,將地址重寫了的頁面的添加
- <%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>
將form替換成
- <skm:Form id="Form1" method="post" runat="server">
- </skm:Form>
即可解決。 四、項目的發佈。
最後做完上面的所有步驟後將項目發佈到IIS上後還需要配置IIS
1.新建一個應用程序池:名稱:任意如:site;選擇net FrameWork版本(如果你的網站時候2.0的話就選擇2.0,我的是4.0)在此我選擇Net FramWork v 4.030319. 託管管道模式先暫時設置爲集成模式。等下面的設置完成之後再將託管管道模式設置爲經典模式。如果下面的設置完成之後不把應用程序設置爲經典模式的話,僞靜態的功能可以實現,但是頁面的樣式圖片不能正常顯示這是設置的關鍵。
2 新建一個網站 Site,將此站點的應用程序程序池設置爲site。
3 選中你的站點比如website ,並且切換到功能視圖。雙擊【處理程序映射】在打開窗口右側的操作欄目下做如下操作。
3.1,【添加腳本映射】-路徑爲.html.可執行文件爲:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 注意:如果你的網站是2.0。可執行文件爲:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
。名稱:任意,比如:html.
3.2, 【添加通配符腳本映射】 請求路徑爲*。可執行文件和3.1的一模一樣,名稱任意,比如:All.
3.3,【託管處理程序映射】(路徑:* 可執行文件:System.Web.UI.PageHandlerFactory 名稱 任意 比如Html-Integrate)
3.4, 雙擊Site站點切換到站點功能視圖。然後雙擊模塊,打開窗口之後在右側的操作欄目下面,單擊【添加託管模塊】-》名稱:任意 如All 類型:URLRewriter.ModuleRewriter 並且 把【僅針對向asp.net 應用程序或託管處理程序發出請求調用】前面的選項 勾上。(記住一定要勾上)。
3.5 ,最後一步:雙擊iis7.0或7.5的應用程序池。在應用程序池列表中找到【site】應用程序池。雙擊打開之後。將Site應用程序池的【託管管道模式】設置爲經典模式。