现在的位置: 首页 > 综合 > 正文

ASP.NET中实现URL重写

2013年01月17日 ⁄ 综合 ⁄ 共 1281字 ⁄ 字号 评论关闭

在新闻系统或者其他系统中常会用到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 )

【上篇】
【下篇】

抱歉!评论已关闭.