zoukankan      html  css  js  c++  java
  • NET URL重写

    URL重写不仅仅对搜索引擎更好的收录有帮助而且从用户体验来考虑,重写后的url地址显然友好性更高。

    这里主要说一下三种常见的url重写的实现以及需要注意的事项。

    前置条件,下载微软的URLRewriter.rar,将URLRewriter.dll放到目录的bin下。

    例如项目地址为:http://localhost:4361/MyURLRewrite/Default.aspx

    首先配置web.config文件,在<configSections>节点下添加

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

    然后<configuration>总节点下添加

    <RewriterConfig>
        <Rules>
    <!--http://localhost:4361/MyURLRewrite/Default.aspx?id=123 重写为 http://localhost:4361/MyURLRewrite/123.aspx -->
        <RewriterRule>
    <LookFor>~/(\d{0,999999})\.aspx</LookFor>
    <SendTo>~/default.aspx?ID=$1</SendTo>
                </RewriterRule>
           <!--http://localhost:4361/MyURLRewrite/Default2.aspx?id=123 重写为 http://localhost:4361/MyURLRewrite/123.html -->
       <RewriterRule>
    <LookFor>~/(\d{0,999999})\.html</LookFor>
    <SendTo>~/default2.aspx?id=$1</SendTo>
       </RewriterRule>
           <!--http://localhost:4361/MyURLRewrite/Default3.aspx?id=123 重写为 http://localhost:4361/MyURLRewrite/123/-->
               <RewriterRule>
    <LookFor>~/(\d{0,999999})/</LookFor>
    <SendTo>~/default3.aspx?id=$1</SendTo>
       </RewriterRule>
           </Rules>
     </RewriterConfig>

    然后配置<httpHandlers>

    <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
     <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
     <add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

    web.config就配置完了以后,

    对于第一种url重写情况现在就可以生效了。

    对于第二种url重写还需要配置一下IIS站点属性,IIS站点>属性>主目录>配置>,这里添加一个和.html的扩展名映射,可执行文件和.aspx的是一样的,同时取消确认文件是否存在选项。

    配置完这个以后第二种URL重写就生效了。

    对于第三种url重写情况需要添加一个*.*的映射,可执行文件和.aspx的也是一样的,同时取消确认文件是否存在选项。

    这样第三种url重写就可以生效了。

    可能存在的问题和解决办法:

    1.图片不显示(CSS、JS路径不对)

    修改图片的代码路径,例如:

    <img src="images/map.gif" />

    修改为:

    <img src="http://images.cnblogs.com/map.gif" />

    2.网站性能下降

    解除图片文件夹的*.*映射(CSS、JS文件夹的操作是一样的)

    IIS站点>图片文件夹>属性>目录>创建,删除如下图所示的那一项之后就解除了该文件夹下的*.*映射

    这样配置完了之后,图片可以正常显示,并且能显著解决url重写后对整个站点带来的性能问题。

    转自:http://www.cnblogs.com/NicholasLee/archive/2010/11/10/1873750.html

  • 相关阅读:
    Linux多线程Pthread学习小结
    TCP三次握手/四次挥手
    内存管理内幕
    Delphi 中分发设计时包
    一个小的算法问题解决
    写了一个验证数字范围的正则表达式
    用 XML 文件持久化和恢复图片信息
    string.Empty 和 "" 并不总是可以互换的
    博客园用的 FreeTextBox 有 bug
    乱花渐欲迷人眼。。。
  • 原文地址:https://www.cnblogs.com/mrma/p/2644048.html
Copyright © 2011-2022 走看看