技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類目錄

贊助商

最新文章

搜索

asp.net利用Global.asax.cs輕松實(shí)現(xiàn)url重寫(url Rewrite)

作者:admin    時(shí)間:2012-6-21 20:46:9    瀏覽:

url重寫(url Rewrite)

url重寫可以美化地址,一個(gè)長(zhǎng)長(zhǎng)的帶有N個(gè)參數(shù)的地址,通過(guò)url重寫,便可以使用很短的很友好的地址來(lái)訪問(wèn),極大地增強(qiáng)了用戶使用體驗(yàn)。現(xiàn)在很多網(wǎng)站都是采用url重寫實(shí)現(xiàn)了偽靜態(tài),從而達(dá)到優(yōu)化SEO的目的。

Global.asax.cs輕松實(shí)現(xiàn)url重寫

就asp.net而言,實(shí)現(xiàn)url重寫的方法有很多,比如使用組件實(shí)現(xiàn)、通過(guò)IIS來(lái)實(shí)現(xiàn)等,但這些實(shí)現(xiàn)方法對(duì)于使用虛擬空間的用戶來(lái)說(shuō)就有所局限,因?yà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這個(gè)方法內(nèi)的代碼就是你所要添加的代碼。這里一般使用正則表達(dá)式來(lái)說(shuō)明重寫規(guī)則。如上述代碼,它實(shí)現(xiàn)的是把default.aspx?q=******.html來(lái)代替,比如原地址如何是http://www.abc.com/default.aspx?q=www.baidu.com,那么通過(guò)上述代碼重寫后,就可以用如下地址來(lái)訪問(wèn)了:http://www.abc.com/www.baidu.com.html。

上述只是一個(gè)例子,你可以根據(jù)自己的實(shí)際情況編寫規(guī)則以滿足自己的實(shí)際需要。

特別說(shuō)明:如果你用的是asp.net2005,是沒有Global.asax.cs這個(gè)文件的,你需要添加Global.asax這個(gè)文件,然后在這個(gè)文件里加入Application_BeginRequest這個(gè)方法,代碼跟上面給出的一樣。(如何在asp.net2005添加Global.asax文件?

標(biāo)簽: url重寫  
相關(guān)文章
    x
    • 站長(zhǎng)推薦
    /* 左側(cè)顯示文章內(nèi)容目錄 */