您的位置:首页 > 其它

使用微软URLRewriter实现URL重写

2012-08-23 11:38 253 查看
1、下载安装MSDNURLRewriting.msi。
开源代码http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi,下载下来后编译一下就可以了。编译后得到URLRewriter.dll和ActionlessForm.dll两个Dll。

2、在ASP.NET项目的web.config中配置使用。

在<configuration>下面添加一段代码:

<configSections>

<section name=\"RewriterConfig\" type=\"URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter\"/>

</configSections>


在<system.web>下面添加一段代码:

<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
</httpHandlers>
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/index.html</LookFor>
<SendTo>~/Index.aspx</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/(/d+)-(.*).html</LookFor>
<SendTo>~/Products/ProductsList.aspx?id=$1&SelectValue=$2</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/(/d+)/(.*).html</LookFor>
<SendTo>~/Products/ProductsDetails.aspx?ID=$1&CASNO=$2</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>


其中LookFor是地址栏显示的地址,SendTo是真实的反问地址。当页面带有多个参数的时候,如第一个用$1来表示,第二个用$2来表示,以此类推,而参数于参数中的链接符由\"&\"改为\"&\"。LookFor中的(/d+)这些就是正则表达式的写法了。

在页面中的链接也就要修改了,比如<a href=\"products/productsList.aspx?id=111&SelectValue=a\">产品列表</a>就需要修改为<a href=\"111-a.html\">产品列表</a>。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: