在项目中,之前公司是使用IIS 7.0官方的URL重写模块,官方的使用说明请参见官方URLRewrite ,添加伪静态支持,后来经理问我有没有涉及伪静态,我说之前项目中我一直是用Intelligencia.UrlRewriter,我觉得它蛮好用的,然后我就按领导的意思换成这个,我以为这东西最多半个小时就搞定的事情,我之前都是在IIS 6.0上配置的。找过一些资料发现是webconfig中,多加两个配置。
在modules 结点添加runAllManagedModulesForAllRequests属性
<modules runAllManagedModulesForAllRequests="true">
然后在modules结果添加以下配置
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule"/>
下面我完整的介绍下配置步骤:
一、配置webconfig
第一步:在配置文件configSections结点中添加下面配置:
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
第二步:在httpModules结点内添加如下配置
<!--配置url重写指定具体的处理组件-->
<add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter"/>
第三步:在modules 结点添加runAllManagedModulesForAllRequests属性
<modules runAllManagedModulesForAllRequests="true">
第四步:在modules结果添加以下配置
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule"/>
重写规则的配置:有两种配置,一种是直接写在webconfig中,一种是写到一个xml中
1、webconfig中的配置:
<rewriter>
<rewrite url="~/default.html$" to="~/default.aspx" processing="stop" />
<rewrtie url="^~/(\d+)/(\d+).html" to="~/Default.aspx?id=$1&artcleid=$2" />//多个参数
</rewriter>
2、写到一个xml文件中,这样需要的webconfig指定到xml中
如:
<!--地址重写规则-->
<rewriter file="~/xml/config/rewrite.xml"/>
rewrite.xml中的内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<rewriteRules>
<!--注册日志监视器-->
<register logger="Intelligencia.UrlRewriter.Logging.DebugLogger, Intelligencia.UrlRewriter" />
<!--begin 网站首页 -->
<rewrite url="~/index.html" to="~/Price_index.aspx" />
<!--end 网站首页 -->
<!--begin 新闻列表1(新闻类型) -->
<rewrite url="~/newslist/([^/]*)/?$" to="~/price_newlist.aspx?type=$2" />
<!--end 新闻列表1(新闻类型) -->
<!--begin 新闻列表2(含分页) -->
<rewrite url="~/newslist/([^/]*)-(\d{1,3})/?$" to="~/price_newlist.aspx?type=$1&page=$2" />
<!--end 新闻列表2(含分页) -->
</rewriteRules>
到此介绍完毕,也许大家可能在用到这个的时候会遇到一个问题,那就是项目中本身的html无法访问,下次我为大家一一介绍解决办法,今天先加班做项目了。