Google
      
发新话题
打印

在虚拟主机上用asp.net轻松实现urlrewrite

在虚拟主机上用asp.net轻松实现urlrewrite

    在网上看到,很多朋友在asp.net中做urlrewrite,用的是HttpHandle+Server.Transfer的方法。其实这种方法是错误的。第一,HttpHandle是实现不了urlrewrite的;第二Server.Transfer是标准的重定向,根本不是urlrewrite。

    其实,实现urlrewrite不用自己HttpHandle,也不用自己实现HttpModule,用几行代码就可以轻松实现。

    我这里介绍的是在虚拟主机上,虚拟主机不同于自己的服务器,你是没有权限去修改iis,也没有权限去安装iis rewrite之类的iis插件。但是我们仍然可以轻松完成需要的功能。

    具体做法如下:打开global.asax.cs,定位到protected void Application_BeginRequest(Object sender, EventArgs e)。从方法名我想也能猜到它是做什么的。输入如下代码:

        protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            
string oldUrl = HttpContext.Current.Request.RawUrl ;

            
string pattern = @"^(.+)default/(\d+)\.aspx(\?.*)*$";
            
string replace = "$1default.aspx?id=$2";

            
if(Regex.IsMatch(oldUrl, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled))
            {
                
string newUrl = Regex.Replace(oldUrl, pattern, replace, RegexOptions.Compiled | RegexOptions.IgnoreCase);
                
this.Context.RewritePath(newUrl);
            }
        }

有了上边这段代码,我访问一个类似:.../default/123.aspx 的网址,当然这个网址在我的电脑上不存在,它就会被定向到:.../default.aspx?id=123。

    当然,利用功能强大的正则表达式,你可以任意按照自己的需要来重写url,这一切都是在服务器端默默的进行,在客户端是不会有任何察觉的。由于是在虚拟主机上,我们只能重定向.aspx文件,如果是自己的服务器,只要把后缀名在iis中注册一下,就可以实现任意后缀名的处理。比如你可以注册一个*.myweb这样的类型,这样别人访问default/456.myweb时,你可以把它重定向到default.aspx?id=456。总之一句话,只要你能想到,.net就可以帮你实现,并且这一切不需要多少的代码。

        protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            
string oldUrl = HttpContext.Current.Request.RawUrl ;

            
string pattern = @"^(.+)default/(\d+)\.aspx(\?.*)*$";
            
string replace = "$1default.aspx?id=$2";

            
if(Regex.IsMatch(oldUrl, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled))
            {
                
string newUrl = Regex.Replace(oldUrl, pattern, replace, RegexOptions.Compiled | RegexOptions.IgnoreCase);
                
this.Context.RewritePath(newUrl);
            }
        }

有了上边这段代码,我访问一个类似:.../default/123.aspx 的网址,当然这个网址在我的电脑上不存在,它就会被定向到:.../default.aspx?id=123。

    当然,利用功能强大的正则表达式,你可以任意按照自己的需要来重写url,这一切都是在服务器端默默的进行,在客户端是不会有任何察觉的。由于是在虚拟主机上,我们只能重定向.aspx文件,如果是自己的服务器,只要把后缀名在iis中注册一下,就可以实现任意后缀名的处理。比如你可以注册一个*.myweb这样的类型,这样别人访问default/456.myweb时,你可以把它重定向到default.aspx?id=456。总之一句话,只要你能想到,.net就可以帮你实现,并且这一切不需要多少的代码。


天生我狂必有用!- 数码狂徒

TOP

使全面移民改革的去年的推挤出轨的

扭捏移民
Three勉强地瞄准了改革能缓和绿色卡片问题,当帮助经济时。
August 8日2008年




使全面移民改革的去年的推挤出轨的Th投资移民e公开喊叫从设法更改移民法律未停止立法委员。 它有仅仅按比例缩小他们的志向。 刺由拥护团体在问题的两边,议员考虑各种各样加拿大移民的勉强地被瞄准的提案 -- “步枪射击”,在华盛顿说法 -- 缓和或加强在法律词条的极限。 这些包括票据允许更多外来工人由农夫和其他季节性雇主雇用,由有高技术技能的外籍工人解除在签证请求的积压,并且reauthorize核实就业的申请人的合格的节目。

We仍然移民加拿大相信联邦移民法律需要检修,不仅调节。 在外来工人节目寻找的某些扩展可能帮助减少非法移民,但是应该考虑他们作为论及关于当前临时签证系统的怨言的一种更加宽广的方法一部分。 那特别真实对熟练或专业工作者的可能归档H-1B签证,在最近二年被攫取了第一种天应用。 支持者为在H-1B节目的巨大的增量鼓动,但是对手说它压低薪水并且防止外来新加坡移民 工人放弃他们不喜欢的工作。 并且接受对更加短期的外籍工人的需要公众是难,当经济减慢时,并且失业登上。


Nevertheless,有一般来说会帮助经济和高技术产业特别是的暂时性步骤国会可能采取: 使容易对熟练的外籍工人获得移民新加坡 绿卡和成为永久美国居民。 今天,美国公民身份和美国雇主安排140,000个绿卡每年可用外国人主办的移民服务,当特选被给最教育或最有天才的申请人。 大约另外226,000张卡片为亲戚主办的外国人是可利用的这里。 正因为卡片是可利用的,然而,不意味将发布它。 科技公司抱怨由于官僚持枪抢劫,数以万计外籍工人在美国不每年收到绿卡,创造浩大的积压和增加需求为H-1B签证。

TOP

开幕式主题曲换成芙蓉姐姐多好啊

几个原因证明芙蓉是最佳人选:
  一、芙蓉姐姐有一种古典美,穿上旗袍绝对惊艳,不是说名族的就是世界的吗?请一个洋妞就是和国际接轨了吗?
  
  二、芙蓉姐姐是网友们的最爱,也是互联网成就芙蓉姐姐,代表着中国的年轻积极向上的新一代。
  
  三、洋妞肯定用英语来唱歌,但芙蓉姐姐不光用一种语言唱,还能用她的肢体来表达“one world one dream”,当姐姐在全球亿万观众面前用肢体语言来唱歌的时候,全世界不同民族,不同语言都会产生共鸣的。
  
  四、芙蓉姐姐的S型身材足以震撼整个世界,她的自信、张扬、活力向外国展示了中国人的乐观心态。
  
  五、就是芙蓉姐姐也是张艺谋老乡,这样搭配起来更和谐完美,更能从舞蹈中领会张艺谋的意思。


注意,本内容绝对不是使用论坛群发,或是其他群发软件发送的。反对网站推广者请不要对号入座。




图1:芙蓉姐姐

TOP

发新话题