开源项目是:Intelligencia.UrlRewriter.dll
主页是:[url=http://www.urlrewriter.net/]http://www.urlrewriter.net/[/url]
按照说明文档:
1- 将DLL添加引用到Web工程/项目里
2- 配置Web.Config文件,具体的配置有如下几点:
<configSections>
<!--UrlRewriter-->
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
</configSections>
<system.web>
<!--UrlRewriter-->
<httpModules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter" />
</httpModules>
</system.web>
<!--UrlRewriter-->
<rewriter>
<rewrite url="~/test_([a-zA-Z]+).html$" to="~/Show.aspx?Code=$1" processing="stop" />
</rewriter>
最后一个是Url的转发规则配置,可以根据自己的需要添加多个转发规则!
如果仅仅这样就OK了,大家看着说明文档一点点来,也没什么问题了,郁闷的是最后的一步转发我没留意,郁闷了一阵子,最后才从网上找到相关的资料。一切还要想看转发网址的后缀!
上例是从/test_abc.html文件转发到/Show.aspx?Code=abc文件,也即用户访问的是test_abc.html文件,而实际上是服务器上的/Show.aspx?Code=abc文件。通过上面的配置后,这样访问是不成功的,还需要配置一下IIS!!
但如果让用户访问的是:/test_abc.aspx的话,则上面的配置就足够了!!
如果还是期望html的话,则需要配置一下IIS服务器,具体的配置,大家可以参考如下:
http://urlrewriter.net/index.php/support/installation/windows-server-2003
需要留意的几点是:
1- 不要在"应用程序扩展"里“添加" .html的映射,否则正常的html将无法访问。
2- 确保选项:untick Verify that file exists.(中文为:确认文件是否存在)没有选中,否则还是会出错!
项目本地备份一个:urlrewriternet20rc1b6.zip