asp.net 2.0 簡單實現url重寫

來源:互聯網
上載者:User

今天,群裡有人問我關於Url重寫的問題,想這重寫,記得國慶期間看過相關文章,msdn介紹也看過,大概就三種方法,最常用的就是用微軟提供的dll檔案,今天,把我dll引用了一下,按著說明配置了一下檔案,結果出現不少問題,調試時找不到.cs原始碼,不知是啥問題,可能dll放的太久,生秀了..-_-.#,只好上網再搜一下新的dll,突然發現2.0裡的新方法!花了半個晚上做一個demo!
以下是demo原始碼:  項目裡只有兩個頁面(Default.aspx,user.aspx(直接response.write(request.querystring["userId"]))
protected void Application_BeginRequest(object sender, EventArgs e)
    {
        string suffixUrl, lastUrl, newurl = string.Empty, userId = string.Empty ;
        lastUrl = Request.RawUrl;
        if (lastUrl.Substring(0, 11).ToLower() == "/urlrewrite")//"urlrewirte是根目錄名,加判斷的原因是本地測試時
         {                                                                //被取出來,上傳到伺服器時根目錄會被網域名稱取代(消失)!
            suffixUrl = lastUrl.Substring(12).ToLower();
        }
        else
        {
            suffixUrl = lastUrl.Substring(1).ToLower();
        }
        bool isMatch = false;
        Regex myReg = new Regex(@"user/([\w\d]+)\.aspx");
        if (myReg.IsMatch(suffixUrl))
        {
            isMatch = true;
            int first=suffixUrl.LastIndexOf('/')+1;
            int end=suffixUrl.LastIndexOf('.');
            int lenght=end-first;
            userId=suffixUrl.Substring(first,lenght);//擷取被匹配的組部分
        }
        if (isMatch)
        {
           newurl="~/user.aspx?userId="+userId;
         }
        else
          {
            newurl = "~/Default.aspx";
           }
 
        HttpContext.Current.RewritePath(newurl); //最關鍵的一句話,重寫Url
    }
測試輸入:http://xxx/urlrewrite/usre/cyq1162.aspx(地址欄顯示)
成功定向到:http://xxx/urlrewrite/user.aspx?userid=cyq1162(頁面內容顯示)
..很簡單吧..不用引入dll,也不用配置Webconfig.輕鬆的幾行代碼搞定!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.