|
|
|
|
|
url重寫(url Rewrite)
url重寫可以美化地址,一個長長的帶有N個參數(shù)的地址,通過url重寫,便可以使用很短的很友好的地址來訪問,極大地增強了用戶使用體驗。現(xiàn)在很多網(wǎng)站都是采用url重寫實現(xiàn)了偽靜態(tài),從而達到優(yōu)化SEO的目的。
Global.asax.cs輕松實現(xiàn)url重寫
就asp.net而言,實現(xiàn)url重寫的方法有很多,比如使用組件實現(xiàn)、通過IIS來實現(xiàn)等,但這些實現(xiàn)方法對于使用虛擬空間的用戶來說就有所局限,因為這些用戶是不能在虛擬空間的服務(wù)器安裝組件,也不可能去設(shè)置IIS的。
本文介紹的方法正是滿足了使用虛擬空間的用戶,它不需要安裝任何組件,不需要在服務(wù)器做任何配置,它所要做的操作,僅僅是在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這個方法內(nèi)的代碼就是你所要添加的代碼。這里一般使用正則表達式來說明重寫規(guī)則。如上述代碼,它實現(xiàn)的是把default.aspx?q=***用***.html來代替,比如原地址如何是http://www.abc.com/default.aspx?q=www.baidu.com,那么通過上述代碼重寫后,就可以用如下地址來訪問了:http://www.abc.com/www.baidu.com.html。
上述只是一個例子,你可以根據(jù)自己的實際情況編寫規(guī)則以滿足自己的實際需要。
特別說明:如果你用的是asp.net2005,是沒有Global.asax.cs這個文件的,你需要添加Global.asax這個文件,然后在這個文件里加入Application_BeginRequest這個方法,代碼跟上面給出的一樣。(如何在asp.net2005添加Global.asax文件?)