这几天关注地址重写问题,参考了微软的 UrlRewriter 。尝试依葫芦画瓢写了自己的一个 UrlRewriting 。
一、参数
       1 、 Enabled : bool 值,设置是否应用 Url 重写功能;
       2 、 IsUseCache : bool ,设置是否启用 Cache 功能;(写该功能时,没有测试开启与未开启 Cache 功能对性能带来多少的提高,写该功能只要是练习 Cache 的设置)
       3 、 UrlRules : string 类型,设置 Url 重写规则,设置时字符串开头必须包含 "~" 。例: UrlRules= “ ~/Article/(/d+)/show.html ”;
       4 、 OrignalUrl : string 类型,设置 Url 重写的原始地址,设置时字符串开头必须包含 "~" ,且相对于网站主目录的 Url 地址必须正确。例: OrignalUrl='~/articleshow.aspx?aid=$1' ;
二、 Web.Config 配置
       1 、 configSections 配置
        <configSections>
          <section name="UrlRewritings" type="Nimeux.UrlRewriting.UrlRewritingSection,Nimeux.UrlRewriting"/>
        </configSections>
        <UrlRewritings Enabled="false" IsUseCache="false">   
           <add UrlRules="~/(/d+)/(/d+)/show/.info" OrignalUrl="~/default.aspx?year=$1&amp;month=$2"/>
           <add UrlRules="~/show_(/d+)/.info" OrignalUrl="~/showarticle.aspx?aid=$1"></add>
        </UrlRewritings>
        2 、 httpModules 、 httpHandlers 设置
        <httpModules>
            <add name="UrlRewritingModule" type="Nimeux.UrlRewriting.UrlRewritingModule,Nimeux.UrlRewriting"/>
       </httpModules>
       <httpHandlers>
           <add verb="*" path="*.info" type="Nimeux.UrlRewriting.UrlRewritingHeadler,Nimeux.UrlRewriting"/>
       </httpHandlers>
       如果站点设置时不更改 *.aspx 后缀名,那么就不用配置 <httpHanders>
三、这面连接地址
       这个 UrlRewriting 有一个让人很难受的问题,那就是页面地址设置的比灵活。例如:页面 Default.aspx 中有一个连接 <a href="2007/10/show.info">test</a> ,他所指向的页面为 "Default.aspx?year=2007&month=10", 当页面加载后,第一次点击该连接,则成功连接且 Url 重写成功。但当在一次点击页面时,链接的地址栏就变成 http : //localhost/2007/10/2007/10/show.info ,显然这个结果是错误的。
       解决这个问题,我尝试的一些方法: (1) 使用 asp.net 服务器控件时,设置 NavigateUrl="~/2007/10/show.info", 这样就解决了上述问题 (2) 也是用 <a> 标记,把 href 设置为 href="http://localhost/2007/10/show.info" ,但是这样 VS 自带的默认 Web 服务器下调时就要加入主目录文件夹名(本例中为 /WebTest/ ),也就是链接地址为 href="http://localhost:4325/WebTest/2007/10/show.info ”,在这样带来了不便。在此把这些问题提出,希望各位大侠帮我解决这个问题,这里表示感谢。
四、页面设置好后,就进行 IIS 配置,如果采用 IIS 已经默认的后缀名,则没有必要配置 IIS 了。但如果更改了页面的后缀名,如本例中的 *.info, 则要在 IIS 默认网站中选择属性 / 主目录 / 配置 / 添加新的文件后缀名。
好了,以上就是这两天的所学所得,写出来供大家批评指正。源代码下载地址:(http://download.csdn.net/source/272595)

我的Url重写,我的UrlRewriting相关推荐

  1. asp.net用url重写URLReWriter实现任意二级域名 (转)

    asp.net用url重写URLReWriter实现任意二级域名 Asp.net 用url重写(URLReWriter)实现任意二级域名 好久没有写技术文章,如果大家看不明白,就多看几篇,汗,或者,在 ...

  2. Url Rewrite 再说Url 重写

    前几天看到园子里一篇关于 Url 重写的文章<获取ISAPI_Rewrite重写后的URL> , URL-Rewrite 这项技术早已不是一项新技术了,这个话题也已经被很多人讨论过多次.搜 ...

  3. URL 重写就是把URL地址重新改写

    作者:overred   来源:原创 URL 重写就是把URL地址重新改写(汗^_^). 详情:http://www.microsoft.com/china/msdn/library/webservi ...

  4. ASP.NET 中执行 URL 重写

    作者:overred   来源:原创 URL 重写就是把URL地址重新改写(汗^_^). 详情:http://www.microsoft.com/china/msdn/library/webservi ...

  5. asp.net 使用UrlRewritingNet.UrlRewriter组件URL重写,伪静态详解

    目录 URL重写的业务需求 ReWritingNet组件主要功能 配置IIS(IIS7/8环境下) 程序代码 重写规则 一,URL重写的业务需求 顾客可以直接用浏览器bookmark功能将页面连结储存 ...

  6. UrlRewritingNet 完美实现 ASP.NET 2.0 中的URL重写(映射)

    URL重写好处有很多,如有利于SEO.便于记忆.隐藏真实路径使安全性提高.便于更新等等.本文概要描述了各种URL重写的实现.   ASP.NET 2.0 中实现URL重写有很多方法,如:Global. ...

  7. UrlRewritingNet实现ASP.net 2.0中URL重写(映射)

    URL重写好处有很多,如有利于SEO.便于记忆.隐藏真实路径使安全性提高.便于更新等等.本文概要描述了各种URL重写的实现. ASP.NET 2.0 中实现URL重写有很多方法,如:Global.as ...

  8. URL 重写就是把URL地址重新改写(汗^_^)。

    URL 重写就是把URL地址重新改写(汗^_^).详情:http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewri ...

  9. UrlRewritingNet ASP.NET 2.0 中的URL重写(映射)

    URL重写好处有很多,如有利于SEO.便于记忆.隐藏真实路径使安全性提高.便于更新等等.本文概要描述了各种URL重写的实现. ASP.NET 2.0 中实现URL重写有很多方法,如:Global.as ...

最新文章

  1. 半个月3篇Nature/Science,95后曹原3年8篇顶刊,网友:杀疯了杀疯了
  2. SpringMVC学习(四)——Spring使用到的设计模式分析
  3. python 字符编码判断 chardet评测
  4. 碧雪情天服务器地址源如何修改,今天维护吗,碧雪情天怎么进不去啊,知道的说一下...
  5. 如何用MaskBlt实现两个位图的合并,从而实现背景透明
  6. gRPC in ASP.NET Core 3.x - gRPC 简介(1)
  7. Java8 Lambdas:解释性能缺陷的排序
  8. linux下spi添加设备,Linux Kernl添加spidev的设备节点
  9. 【HDU - 5493】Queue(思维,贪心,线段树)
  10. 2016.07.24
  11. step-by-step: 夕小瑶版神经网络调参指南(上)
  12. Java笔记-读取资源文件应该注意的问题(大文件解析、\r\n分割相关的)
  13. Mybatis的resultMap自定义映射
  14. 组态软件运行在云服务器是上,如何将本地组态画面发布到云服务器
  15. Android系统(221)---O版自定义开关机动画
  16. 初识openwrt(下)
  17. 用计算机怎么算lnk,lnk格式怎么处理!我的电脑除了系统自带其他软件都变成lnk格式...
  18. 3、redis之java client环境搭建
  19. 突破大文件上传 和内网ip的端口转发
  20. 【接口测试】axios测试接口

热门文章

  1. ParaView-2
  2. RTKLIB中的各种AR mode 详解
  3. CSS 绝对定位与相对定位
  4. 【HTML】表单隐藏域hidden
  5. java实现QQ微信扫码登录
  6. 如何区别药品的通用名、商品名(品牌名)和别名?
  7. 1139:整理药名(C C++)
  8. USB摄像头图片采集+QT显示(二)
  9. 利器解读:Linux 内核调测中最最让开发者头疼的 bug 有解了|龙蜥技术
  10. 【ACO三维路径规划】蚁群算法无人机三维路径规划【含Matlab源码 1278期】