- Web.Config 配置。
1.1 配置<configSections>節<!----> <section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler,Intelligencia.UrlRewriter" /> <!---->
1.2 配置<system.webServer>節
該節點下配置的 <modules> , <handlers> 僅适用于內建模式,而不适用于經典模式,如經典模式下運作的應用程式則忽略web.config的 <system.WebServer> 節中指定的所有托管代碼子產品和處理程式,這種模式下web應用程式應該在 <syste.web> 節的 <httpModules> 和 <httpHandlers> 中定義子產品和處理程式。
當在<syste.web> 節點的 <httpModules> 和 <httpHandlers> 節中配置了定義子產品和處理程式,并且應用程式池選擇在內建模式 ( iis7.0以下) 下運作時,配置 <validation> 節 可以忽略因為在<syste.web>中配置的定義子產品和處理程式而造成以下錯誤
1.3 配置<rewriter>節<modules runAllManagedModulesForAllRequests="true"> <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule" /> </modules>
該節點 名字 rewriter 是在 <configSections> 節點中配置的 <Sectioin> 的 name 值 ,用于配置URL重寫規則。
1.4 在IIS7.0經典模式中運作應用程式池,或者在IIS7.0以下運作網站,需要配置<system.web>節<rewriter> <rewrite url="~/([a-z0-9A-Z_]+)/(.+)\.(jpg|png|gif|swf|.flv{1})" to="~/$1/$2.$3" /> </rewriter>
在經典模式下運作應用程式池(或在IIS7.0以下運作),需要配置以下節點。但是經過測試在這種模式下,并不能以URL字尾進行比對重寫 (測試時使用的是MVC3.0,不清楚為什麼識别不了 “.”符号,猜測可能原因:在這種模式下所有的靜态資源檔案被MVC預設的靜态處理程式StaticFile進行了預設處理而沒有預先進行Url重寫,有知道具體原因的兄弟歡迎留言告知,謝謝。但在內建模式下是可以被重寫的。),但是可以重寫不帶“.”的URL。
<httpModules> <add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter" /> </httpModules>