IIS6配置伪静态(使用ASP.NET的UrlRewriter组件)
本文分享如何使用ASP.NET自带的UrlRewriter组件,即Intelligencia.UrlRewriter.dll,在IIS上来实现伪静态功能。
首先,打开IIS6.0,右键点站点,选择“属性”,再选择“主目录”,再点“配置”,在里面找到“应用程序设置”中的映射,把解析.aspx后缀的组件地址找到。
在Microsoft .NET Framework v1.1版本中的地址是C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,其它版本应该是就是v后面的版本号不同而已。
得到这个地址后,再新建一个映射。其中可执行文件,就填上面找出来的那个aspx文件的映射地址,然后“扩展名”填“.html”或“.htm”,可以看你的喜好。动作写全部动作,“确认文件是否存在”这个不勾选。
接下来,就是IIS站点的程序文件的中的web.config配置文件里面,来进行具体的设置。
总的来说,web.config文件中关于伪静态的设置分为三部分。
1、在configSections中设置一个rewriter段。
2、包含一个UrlRewriter的rewrite模块。
3、在<rewriter>段里面配置具体的伪静态规则。
另外,在配置文件时要注意两点。
1.参数用()括起来,使用 $1 来获得参数。
2.多个参数的时候使用&分割。
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
</configSections>
<system.web>
<httpModules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter"/>
</httpModules>
</system.web>
<rewriter>
<!--首页,把default.aspx伪装成default.html-->
<rewrite url="~/default.html$" to="~/default.aspx" processing="stop"/>
<!--文章列表页,第一个分类列表首页,第二是分类列表的分页-->
<rewrite url="~/news/list-([A-Za-z0-9-]*).html$" to="~/NewsList.aspx?typeUrl=$1" processing="stop"/>
<rewrite url="~/news/list-([A-Za-z0-9-]*)-([0-9]*).html$" to="~/NewsList.aspx?typeUrl=$1&page=$2" processing="stop"/>
<!--文章内容页-->
<rewrite url="~/news/([A-Za-z0-9-]*).html$" to="~/NewsDetail.aspx?url=$1" processing="stop"/>
</rewriter>
</configuration>
最后,记得把Intelligencia.UrlRewriter.dll添加到站点程序文件的bin目录中,不然,系统会因为找不到这个dll而导致rewrite失败。