技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

asp.net利用Global.asax.cs轻松实现url重写(url Rewrite)

作者:admin    时间:2012-6-21 20:46:9    浏览:

url重写(url Rewrite)

url重写可以美化地址,一个长长的带有N个参数的地址,通过url重写,便可以使用很短的很友好的地址来访问,极大地增强了用户使用体验。现在很多网站都是采用url重写实现了伪静态,从而达到优化SEO的目的。

Global.asax.cs轻松实现url重写

就asp.net而言,实现url重写的方法有很多,比如使用组件实现、通过IIS来实现等,但这些实现方法对于使用虚拟空间的用户来说就有所局限,因为这些用户是不能在虚拟空间的服务器安装组件,也不可能去设置IIS的。

本文介绍的方法正是满足了使用虚拟空间的用户,它不需要安装任何组件,不需要在服务器做任何配置,它所要做的操作,仅仅是在Global.asax.cs加入一段代码。如下:

void Application_BeginRequest(Object sender, EventArgs e)
    {
        string oldUrl = HttpContext.Current.Request.RawUrl;
        string pattern = @"/([^/]+?).html$";
        string replace = "/default.aspx?q=$1";
        if (Regex.IsMatch(oldUrl, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled))
        {
            string newUrl = Regex.Replace(oldUrl, pattern, replace, RegexOptions.Compiled | RegexOptions.IgnoreCase);
            this.Context.RewritePath(newUrl);
        }
    }

Application_BeginRequest这个方法内的代码就是你所要添加的代码。这里一般使用正则表达式来说明重写规则。如上述代码,它实现的是把default.aspx?q=******.html来代替,比如原地址如何是http://www.abc.com/default.aspx?q=www.baidu.com,那么通过上述代码重写后,就可以用如下地址来访问了:http://www.abc.com/www.baidu.com.html。

上述只是一个例子,你可以根据自己的实际情况编写规则以满足自己的实际需要。

特别说明:如果你用的是asp.net2005,是没有Global.asax.cs这个文件的,你需要添加Global.asax这个文件,然后在这个文件里加入Application_BeginRequest这个方法,代码跟上面给出的一样。(如何在asp.net2005添加Global.asax文件?

标签: url重写  
相关文章
    • IT热文
    • 站长推荐