关于.net 的UrlRewrite


  其实一直有这个疑问,为什么人家.net 写的网站为什么后缀能变成.html来显示?今天终于明白了,答案:UrlRewrite

  步骤:添加URLRewriter.dll ,网上自己下载,还有一个ActionlessForm.dll,是处理post数据的。然后在web.config中配置页面信息,具体如下:

 1、往<configuration>节点中添加

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

2、在<configuration>下的<system.web>节点中添加

<httpModules>
      <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>

3、开始在<configuration>下写Rewriter配置信息,url信息用正则表达式表示

<RewriterConfig>
    <Rules>
      <!-- 规则,可以使用正则表达式 -->
      <RewriterRule>
        <LookFor>~/index.html</LookFor>
        <SendTo>~/Index.aspx</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/News.html</LookFor>
        <SendTo>~/News.aspx</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/NewsShow_(\d{1,4})\.html</LookFor>
        <SendTo>~/NewsShow.aspx?id=$1</SendTo>  

      </RewriterRule>

  <RewriterRule>
      <LookFor>~/wjProduct-(\d{1,6})-(\d{1,6})\.html</LookFor>
      <SendTo>~/wjProduct.aspx?page=$1&amp;Menu_ID=$2</SendTo>  //第一个参数用$1;第二个参数用$2...  参数中间加&amp

    </RewriterRule>
  。。。

  。。。     

    </Rules>
  </RewriterConfig>

4、接下来就是每个url的写法了,比如你在index.aspx页面的主页为index.html ,但是真正发送请求出去的是index.aspx,其他也一样道理。再在项目的属性中设置启动为index.html;这样一运行就执行了index.html。

 

注意:这样重写可能会致使有些路径错乱,如图片路径。毕竟你是在项目都弄完后才来rewrite的,所以要小心。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM