首页  ·  知识 ·  云计算
在虚拟主机上用asp.net轻松实现urlrewrite
开发Asp.net2.0的专栏  http://blog.csdn.net/web718/archive/2007/06/22/166  综合  编辑:dezai  图片来源:网络
具体做法如下:打开global.asax.cs,定位到protected void Application_BeginRequest(Object sender, EventArgs e)。从方法名我想也能猜到它是做什么的。输

具体做法如下:打开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就可以帮你实现,并且这一切不需要多少的代码

本文作者:开发Asp.net2.0的专栏 来源:http://blog.csdn.net/web718/archive/2007/06/22/166
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读