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.多个参数的时候使用&amp;分割。

<?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&amp;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失败。

03-15 09:02