UrlRewriter 是微软封装好了的一个URL重写组件。使用它可以让我节约很多自已开发的时间。
第一步,下载UrlRewriter.dll组件, copy到你的项目 bin 目录下。
第二步,在Web.config中加入:
1 <configuration>
2 <configSections>
3 <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
4 </configSections>
5
第三步,加入重写的规则节点:
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/commlist/(\d+).htm</LookFor>
<SendTo>~/commlist.aspx?newsclass=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/newslist/(\d+).htm</LookFor>
<SendTo>~/newslist.aspx?newsclass=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/down/(\d+)/(\d+).htm</LookFor>
<SendTo>~/down.aspx?id=$1&k=$2</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/down/(\d+).htm</LookFor>
<SendTo>~/down.aspx?id=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/downtype/(\d+).htm</LookFor>
<SendTo>~/downtype.aspx?id=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/downlist</LookFor>
<SendTo>~/downlist.aspx</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/piclist/(\d+).htm</LookFor>
<SendTo>~/piclist.aspx?id=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/newssearch/(\d+)/([\s\S]+).htm</LookFor>
<SendTo>~/newssearch.aspx?lx=$1&key=$2</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/newssearch/(\d+).htm</LookFor>
<SendTo>~/newssearch.aspx?lx=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/newssearch/([\s\S]+).htm</LookFor>
<SendTo>~/newssearch.aspx?key=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/flvlist</LookFor>
<SendTo>~/flvlist.aspx</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/flvclass/(\d+).htm</LookFor>
<SendTo>~/flvclass.aspx?cId=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
第四步,加入模块配置(写在<system.web>里面):
<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>
第五步,在模块配置中加入:
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
第六步,在IIS你的站点属性主目录配置映谢 加入一个和 aspx 页面的配置相同的扩展名项。注意“确认文件是否存在”不要勾选,否则会出现找不到文件。
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
第七步:如果你的页面有回传。比如说放了DATAGRID,有分页的,你点到下一页就发现,晕倒,又出问题了。
这下怎么办呢,这个其实微软件的网站上就有说到,我在这里简述一下了。
第六步,加入窗体回传保持的组件:
在原来你下载的项目里找到 ActionlessForm.dll 放到你的项目 bin 目录下。
然后在你的这个页面中加入:
<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>
再把你的<Form...>改为:
<skm:Form id="你的表单名" method="post" runat="server">
.....
</skm:Form>
That's All.现在你可以高枕无忧了。一切如你所愿。
有问题还可参考:http://www.cnblogs.com/mouhong-lin/archive/2008/08/07/1262965.html