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>中配置的定义模块和处理程序而造成以下错误
<modules runAllManagedModulesForAllRequests="true"> <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule" /> </modules>
<validation validateIntegratedModeConfiguration="false" />
1.3 配置<rewriter>节
该节点 名字 rewriter 是在 <configSections> 节点中配置的 <Sectioin> 的 name 值 ,用于配置URL重写规则。
<rewriter> <rewrite url="~/([a-z0-9A-Z_]+)/(.+)\.(jpg|png|gif|swf|.flv{1})" to="~/$1/$2.$3" /> </rewriter>
1.4 在IIS7.0经典模式中运行应用程序池,或者在IIS7.0以下运行网站,需要配置<system.web>节
在经典模式下运行应用程序池(或在IIS7.0以下运行),需要配置以下节点。但是经过测试在这种模式下,并不能以URL后缀进行匹配重写 (测试时使用的是MVC3.0,不清楚为什么识别不了 “.”符号,猜测可能原因:在这种模式下所有的静态资源文件被MVC默认的静态处理程序StaticFile进行了默认处理而没有预先进行Url重写,有知道具体原因的兄弟欢迎留言告知,谢谢。但在集成模式下是可以被重写的。),但是可以重写不带“.”的URL。
<httpModules> <add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter" /> </httpModules>