简介UrlRewriter.Net实现对富关键字Url的重写支持
- 摘要:本文介绍UrlRewriter.Net实现对富关键字Url的重写支持,并提供详细的实现步骤供参考。
为动态Url指定富关键字的Url, 有很多种方法. 这里使用UrlRewriter.Net. 此工具是一个开源组件, 它在Asp.Net的层级实现了Url重写, 因而整合到项目中比较方便. 而另外的一种Url重写产品ISAPI_Rewrite则是以ISAPI过滤器的形式在IIS的层级上实现重写, 后者的性能更好一些,但是需要在服务器上安装.
下面是使用UrlRewriter.Net的详细步骤:
1. 访问http://www.urlrewriter.net , 点击Download, 下载该产品的最新发布版.
2. 解压压缩包, 将里面的Intelligencia.UrlRewriter.dll文件复制到项目的Bin文件夹下面并添加引用到此文件.
3. 打开项目的web.config文件, 然后添加下面的配置处理程序段,启用UrlRewriter.Net会从名为rewriter的配置节点中读取其配置信息:
4. 对HTTP模块UrlRewriter进行配置, 它将使UrlRewriter.Net能够解释收到的请求然后重写它们:<configuration>
<configSections>
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
</configSections>
5. 最后, 必须确保UrlRewriter.Net配置成接收所有不存在的文件或文件夹的请求, 如果使用的是IIS7, 则需要在web.config中添加以下配置行:<system.web>
<!--UrlRewriter-->
<httpModules>
<!--<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>-->
<add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter"/>
</httpModules>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter"/>
<!--<remove name="ScriptModule"/>-->
<!--<add name="ScriptModule" preCondition="managedHandler"/>-->
</modules>
</system.webServer>
老版本的IIS可以参照http://urlrewriter.net/index.php/support/installation下的步骤来进行配置
6. OK, 现在UrlRewriter.Net应该可以使用了, 作为第一个测试, 把接收请求(例如"/my-paper.aspx"重写为"~/Paper.aspx?PaperID=1"), 在web.config中的节点<configuration>中添加以下配置信息:
<rewriter>
<rewrite url="/my-paper.aspx" to="~/Paper.aspx?PaperID=1"/>
</rewriter>
7. 载入http://localhost/my-paper.aspx, 将会获取ID为1的Paper信息.
8. 至此, 已经验证富关键字Url重写功能正常, 接下来就能够在节点<rewriter>下面来根据正则表达式添加想要的Url重写规则. 添加完毕以后, 网站就能够正确的支持富关键字Url了!