导读:
微软推出的一款重写url的一个组件,以及组件源代码。
可以实现 网站的地址重写,通常用于网址的伪静态化。可以让网站更好的被搜索引擎收录。
用法如下:
原理:当iis接收到请求之后,判断请求页面的后缀名,然后通过iis配置中的映射中设置的,
哪种后缀的文件是由哪个处理程序处理的规则交由相应的程序来处理该请求完成操作。
我们要实现的功能就是当客户访问一个静态网址(.html)的时候,而实际访问的是一个(.aspx)的动态地址。
所以我们要在iis里设置映射:让 .html 的文件交由 .net 的处理程序(即 aspnet_isapi.dll)来处理。
注意:设置时,要把“确认文件是否存在”的勾去掉,因为我们的静态页面不是真正存在的。
设置完之后,我们就开始执行下边的步骤:
首先通过文章最后的连接下载该组件。
解压文件,把URLRewriter.dll复制到您的网站的bin目录下。
在web.config添加如下配置节:
<httphandlers><br> <add path="*.aspx" verb="*"> type="URLRewriter.RewriterFactoryHandler, URLRewriter" /> type="URLRewriter.RewriterFactoryHandler, URLRewriter" /> <br> </add></httphandlers>
然后按照如下格式,在wen.config中写入要重写的url的规则:
<rewriterconfig><br> <rules><br> <rewriterrule><br> <lookfor>~/Products/Default\.aspx</lookfor><br> <sendto>~/ListCategories.aspx</sendto><br> </rewriterrule><br> <rewriterrule><br> <lookfor>~/Products/Beverages_(\d{1,4})\.aspx</lookfor><br> <sendto>~/ListProductsByCategory.aspx?CategoryID=$1</sendto><br> </rewriterrule><br> <rewriterrule><br> </rewriterrule></rules><br> </rewriterconfig>
上例中得表达式一个是不带参数的重写,一个是带参数的,
带参数的~/Products/Beverages_(\d{1,4})\.aspx中 _(\d{1,4}) 是规则表达式,只要符合这个规则的网页,
会转发到下边的~/ListProductsByCategory.aspx?CategoryID=$1
这个网址其中,$1会接收到 (\d{1,4}) 规则表达式相对应的参数的具体值。从而达到转发的目的。
好了,今天大概就写到这里,以后有时间再补充,希望对大家有帮助。
不明白的可以随时给我发邮件。
URLRewriter组件及源码下载地址:http://download.csdn.net/source/349102
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2077194
本文转自
http://blog.csdn.net/nopole/archive/2008/02/01/2077194.aspx