在新闻系统或者其他系统中常会用到URL重写技术,网上有好多这个教程,我就在这里总结下我的实现过程。
本文参考了ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置
第一步:将URLRewriter.dll这个文件放到工程的bin目录下,并在VS的工程的reference中添加URLRewriter
第二步:配置Web.config文件,这里需要配置三个地方。
第一个地方,在<configuration><configSections>中添加:
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,
URLRewriter"
/
>
第二个地方,在<configuration>中添加URL重写规则:
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/website/d(\d+)\.aspx</LookFor>
<SendTo>~/website/DispalyArticle.aspx?id=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/website/d(\d+)\.html</LookFor>
<SendTo>~/website/DispalyArticle.aspx?id=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
比如说这里我就是添加了当要定位到~/website
/目录下d+数字.html的网页时就重定位到~/website/DispalyArticle.aspx并且传过去页面中的数字
在DispalyArticle.aspx中通过Request.QueryString["id"]获得网页中传过来的id值
第三步:需要配置的地方,在<httpHandlers>中添加
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
这样就可以重定位html文件了和aspx文件了,不过在发布到IIS中去的实收html文件的重定位还需要配置IIS,配置过程如下:
你的网站-->IIS中处理程序映射->添加脚本映射(路径:*.html 可执行文件%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 名称:任意,比如Hml )