在ASP.NET中如何实现和利用URL重写
作者:
IT168 思维牧童 2008-01-08
内容导航:
【IT168专稿】
灵活的URL重写可以让你的网站增加可用性和专业性。在帮助网站更好的被搜索引擎索引收录方面,这也是一个重要的因素。在本篇文章中,我将带你了解如何在ASP.NET中简单的实现URL重写,以及一些常见问题的解决办法。我还将说明为什么URL重写如此重要,以及如何使用它来增强你的网站。
什么是URL重写?
URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程。举个例子来说,如果通过浏览器进来的URL是“www.mysite.com/UserProfile/1.aspx”,那么它可以被重写成 “www.mysite.com/UserProfile.aspx?ID=1”这样的URL,这样的网址可以更好的被网站所阅读。
重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读和索引你的网站的能力;而且在你改变了自己的网站结构后,无需要求用户修改他们的书签,无需其他网站修改它们的友情链接;它还可以提高你的网站的安全性;而且通常会让你的网站更加便于使用和更专业。关于它的好处,我将在本篇文章的“如何利用URL重写”部分来详细的说明。
如何实现URL重写
URL重写可以通过编程的方式来实现。ASP.NET中的Contex.RewritePath()方法可以让你从程序中实现重写请求的URL。一旦重写后,系统将使用新的路径来继续执行这个请求。
在Global.asax文件的Application_BeginRequest()方法中,你需要增加代码来阅读进来的路径,然后根据一个或多个URL重写规则来成需要进一步处理的路径。下面的例子执行以下URL重写规则:
代码清单1:使用Contex.RewritePath()实现URL重写
void Application_BeginRequest(object sender, EventArgs e) { String path = Request.Url.ToString(); if (Regex.IsMatch(path, "/URLRewriting/OldUrl.aspx", RegexOptions.IgnoreCase)) { Context.RewritePath("/URLRewriting/NewUrl.aspx"); } else if (Regex.IsMatch(path, "/URLRewriting/UserAccount/(.+).aspx", RegexOptions.IgnoreCase)) { String idString = path.Substring(path.LastIndexOf('/') + 1, path.Length - path.LastIndexOf('/') - 6); Context.RewritePath("/URLRewriting/UserAccount.aspx?id=" + idString); } }
1