ASP.NET中实现Url Rewriting方法

时间:2010-03-10 12:42:22  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:人兴趣或者研究目的之前就已经将原有网址收藏了起来, 如果这时他从收藏夹打开该页面的时候发现这已经是坏链了。本文旨在介绍如何使用网址重写将那些“难看”的网址转换成比较有实际意义的网址,使其便于记忆。例如将http://yoursite.com/info/dispEmployeeInfo.aspx?EmpID=459-099&type=summary转换成如下地址:http://yoursite.com/ dispEmployeeInfo/459-099/summary.html 。我们甚...
  正文:

稍微花点时间看一看你做的网站里头的URL地址,你看到类似这样的地址吗http://yoursite.com/info/dispEmployeeInfo.ASP/ target=_blank class=infotextkey>aspx?EmpID=459-099&type=summary ?也许你会出于某种目的把大量的页面文件从一个目录甚至一个网站转移到其他地方,而许多访问者出于个人兴趣或者研究目的之前就已经将原有网址收藏了起来, 如果这时他从收藏夹打开该页面的时候发现这已经是坏链了。本文旨在介绍如何使用网址重写将那些“难看”的网址转换成比较有实际意义的网址,使其便于记忆。例如将http://yoursite.com/info/dispEmployeeInfo.aspx?EmpID=459-099&type=summary转换成如下地址:http://yoursite.com/ dispEmployeeInfo/459-099/summary.html 。我们甚至发现 网址重写技术可以解决令人头疼的404错误,或者说它可以创建一个智能化的404错误解决方案。

  如上所述,网址重写是实现一种截取网址请求并将其进行处理后重新指向到一个指定的网址的过程。 在网址重写执行的期间,相应处理程序处理被请求的网址,从中提取出相关的值,然后重新指向一个新的指定地址。例如:由于一次网站目录调整,原有的 /people/ 子目录下的所有网页全部移动到/info/employees/目录,原访问者从收藏夹或者其他什么地方点击链接发出访问/people/目录下的文件的请求时,你肯定希望他还是能通过原有地址看到和原来相同的页面,但实际上看到的却是网址重写指向的新目录下的相应文件。

  在老版本ASP中,使用网址重写技术的途径很少,要么写一个 ISAPI过滤器,要么购买第三方厂商提供的网址重写组件,然而在微软提供的ASP.NET下你可以通过多种方法很简单地开发出自己的网址重写软件,以满足自己各种不同的需要。本文将和你一起讨论这门针对ASP.NET开发人员的实现网址重写的技术,然后举一些网址重写实际应用的例子。在我们深入探讨网址重写技术的细节之前,我们先看一下日常使用网址重写技术实现的场景。

  网址重写的一般用途

  创建一个数据操作的ASP.NET程序最常见的就是一个aspx页面后面带上一些查询参数集合。例如在设计一个电子商务网站的时候,假定你设计了一项功能允许用户浏览待售的商品,为了更加方便操作,你设计了一个页面displayCategory.aspx将商品按照给定的分类显示,那么该分类下的商品显示页面上应该在页面文件对应网址后面加上了一个商品分类的查询参数,例如用户要查询待售的“装饰品”,在数据库中所有的装饰品数据对应的分类编号CategoryID的值为5,那么用户会访问如下网址:http://yoursite.com/displayCategory.aspx?CategoryID=5。

  创建一个包含类似这样网址的网站最终有两种结果,首先从最终用户的角度来观察,http://yoursite.com/displayCategory.aspx?CategoryID=5 这个网址有些杂乱, 可行性分析专家Jakob Neilson(主页: http://useit.com/) 建议选择网址显示方式时候考虑如下要求(参考网址:http://www.useit.com/alertbox/990321.html):

  · 是否简短

  · 是否易于输入

  · 是否将站点结构形象化

  · 是否具有隐蔽性,也就是让用户通过一个虚拟的看似有意义的导航地址访问指向该地址

  我想还应该在上述列表中再增加一条: 是否便于记忆。http://yoursite.com/displayCategory.aspx?CategoryID=5 这个地址没有一个地方符合Neilson标准的任何一条,也不便于记忆。当然,对于有经验的网络开发专家来说,他们很熟悉这种键值对构成的查询参数结构体系,然而对于普通用户来说输入这些带有参数的网址实在是太麻烦了。

  一种较好的方法就是使用一种比较直观且容易记忆的方式来将网址表示为: http://yoursite.com/products/Widgets 乍一看很容易就会推断这个网址所对应的内容极有可能会是显示装饰品(Widgets)信息,这个网址就变得更加容易记忆和传播!然后我告诉我的同事:“请查看这个网址:http://yoursite.com/products/widgets ”不用我说第二遍,她可能一次就把地址敲到浏览器上了(你也可以在亚马逊(Amazon.com)的网站上这样尝试一下)。很快就浏览器上就列出了装饰品(Widgets)的内容。这里“隐蔽性”表示:用户可以自行变更网址的结尾,例如输入:http://yoursite.com/products 就能看到全部分类相关的商品列表或者列出所有相关商品分类目录列表。

  注:用上述简单的变更网址内容的方法来构思一下如今的比较流行的Blog网站生成的网址。例如:要查询2004年1月28日所发的帖子,只需输入 http://someblog.com/2004/01/28 即可,如果将网址裁减为 http://someblog.com/2004/01 则显示 2004年1月份的帖子 ,同样将月份裁减掉得到 http://someblog.com/2004 则显示出2004年全年所发的帖子。

  网址重写技术除了用于将复杂的网址简单化之外,它还能用于处理因网站目录调整或者其他原因导致产生大量的无效链接和过期书签。 《ASP.NET中实现Url Rewriting方法》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/13175.html

 1/17    1 2 3 4 5 6 下一页 尾页


关键字:

关于《ASP.NET中实现Url Rewriting方法》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td