姓名:
 专业:
 电话:
 备注:

 

 最新动态

详细新闻

 
asp.net的URL Rewriting使用说明
时间:2009-06-08   来源:五月花专修学院  作者:55rc   浏览:284/次

URL Rewriting,这个好像似曾相识,又觉得很陌生的技术,已经随着资讯安全与SEO (Search Engine Optimization)的脚步,逐渐影响每个Web Developer,不论你是走哪个技术的,基本上都很难不去重视它,因为它其实可以帮你很多忙。光是一个REST的URL样式,就可以让很多人眼睛为之一亮。

试想,如果你的网站有某支URL是长这样好看:
http://www.jzxue.com/System/plus/search.php?kwtype=1&keyword=%CD%F8%D5%BE&searchtype=titlekeyword

还是这样好看:
http://webdesign.jzxue.com/xindejiqiao/200904/30-2010.html

又或者,使用者是否可以用这样的输入URL方式:
http://www.jzxue.com/tag/j2ee/

去列出他想要搜寻的关于j2ee的东西,还是要使用者去打:
http://www.jzxue.com/System/plus/search.php?kwtype=1&keywordj2ee&searchtype=titlekeyword这样的URL?

我想对行销或消费者行为有概念的人来看的话,答案就很明显了。

URL Rewriting的强项,就是将外表的URL,转换成内部自己看的到的URL再做处理,可以让内部的URL继续使用,又可以让外部的URL具亲和性,因此URL Rewriting现在已经逐渐成为网站开发人员必须要知道的技术之一,而且现在其实已经有很多URL Rewriting的模组可以使用了,例如UrlRewriting.Net这个套件,或是IIS 7.0中的URL Rewriting Module等。

不过,如果能够自己走一遭的话,会更了解URL Rewriting是什么,而且对于网路上的URL Rewriting模组,也会更具精确的掌握力(以下以ASP.NET为主要说明的技术,其他的语言请参照手册,找出相对应的功能)。

首先,URL Rewriting是作为外部与内部URL要求的转换器,它需要过滤所有的URL,来执行重转向的动作,因此它比较适合生存在Web Server的执行过程中,以ASP.NET来说,使用HTTP Module即可处理这方面的工作(HTTP Handler较不适合)。

接者,设定处理HttpApplication.BeginRequest或是HttpApplication.AuthorizeRequest事件(多数的模组都是处理HttpApplication.AuthorizeRequest事件):

C#代码
  1. public void Init(HttpApplication context)  
  2. {  
  3.    context.AuthorizeRequest += new EventHandler(AppAuthorizeRequest);  
  4. }  


 
然后再于事件常式中,呼叫HttpApplication.Context.RewritePath()即可:

C#代码
  1. public void AppAuthorizeRequest(object sender, EventArgs e)   {  
  2.    (sender as HttpApplication).Context.RewritePath("~/MyHandler.aspx");  
  3. }   


然后,在Web.config中,将这个模组挂到system.web/httpModules设定中,若是IIS 7.0,则要设在system.webServer/modules中。
 

XML/HTML代码
  1. <system.webServer>  
  2.     <validation validateIntegratedModeConfiguration="false" />    
  3.     <modules>  
  4.         <add name="UrlRewritingHandler" type="UrlRewritingModule" />  
  5.     </modules>  
  6. </system.webServer>  

 
然后执行这个Web Application,不论你输入哪个URL路径,都会被导向到MyHandler.aspx中(当然,你的专案中要有MyHandler.aspx这个网页)。

URL Rewriting其实技术上就是这样而已,透过HttpApplication.Context.RewritePath()将要求的URL传到指定的网页来处理,然而在开发实务上,URL Rewriting要考量的其实很多:

由于每个URL都会被处理,那如果URL指向的是图片,档案,scripts或其他资源时要如何处理? 是否有特殊要排除的路径? 执行URL Rewriting时,URL的格式要怎么设计才会符合需求? 由于URL被重写时,<form>的action属性会反应内部的URL,而不是外部的URL,此时要如何处理?

URL Rewriting对效能很要求,因为它要处理每一个URL要求,而不是选择性不处理。

另外,URL也不是一定要硬性的做Rewriting,部份需要排除的就不需要做Rewriting,或者你有某种格式的URL是要做重导向(HTTP 302)的话,也可以直接输出HTTP 302讯息要求浏览器重导向即可,切记,不要在URL Rewriting中加太多的判断条件,也不要在URL Rewriting中做太耗时间的事,那只会拖慢URL的处理速度(例如还要连资料库存取资料这种事)。

1
 
  • 追加500万设备,新增四大实训车间,保障学生实践操作能力
  • 数控分院七大类型车间设备纵览
  • 建立稳固就业基地,确保学生妥善安置,成都就业局胡超副局长来院参观
  • 20台“大家伙”入住汽修分院
  • 一览汽修分院五大实习操作车间
  • 省人大领导夸我院办学实、教学质量高
  • 他放弃二本高校,毅然选择五月花
  • 成都广播电视大学五月花杯数控技能大赛取得圆满成功
  • 从教室到公园,五月花特色晨读纪实
  • 一个新生所看到的五月花
  • 美丽五月花—带你畅游华西公园
  • 学生公寓
  • 教学楼
  • 首届艾普杯“璀璨新星”总决赛暨迎新晚会成功举行
  • 魅力青春 秀出真我——第三届魅力五月花“惠普杯”阳光男生决赛
  • 巨大阵容,寒冬里的盛会——五月花第二届魅力女生风采大赛总决赛隆重举行
  • 五月花学生自创电视台,强烈推荐!
  • 素质教育拓展是什么?
  • 我院室内设计0901、0904班学生作品选
  • 2009喜迎元旦师生美术作品选
  • 世界500强企业可成科技有限公司来我院招聘毕业生
  • 我院"可成奖学金”表彰大会召开
  • 五月花三维模式结硕果,100名杰出学子
  • 我院毕业生踏上“海尔”就业路
  • 加盟希望集团 五月花喜讯飞扬
  • 五月花百万富翁成长录————访电子商务成功学子记实
  •  
    就业安置 | 新闻中心 | 办学优势 | 校园生活 | 教学园地 | 招生简章 | 分校站点 | 求学向导 | 国际认证 | 学院电视台 | 在线报名 | 学院论坛 | 创业中心
    校区地址:成都市高新西区团结镇学苑路98号四川五月花专修学院 人才网: www.55rc.com
    主办:四川五月花专修学院 宣传部 备案:蜀ICP备号05000776号 网站纠错