G 最佳化(SEO)基於動態網頁面的靜態頁面實現

來源:互聯網
上載者:User

google最佳化(SEO)基於動態網頁面的靜態頁面實現
中國二手市場網站http://www.2shoushichang.com/ 小胖著 轉貼標明出處

我們大家都知道,搜尋引擎對於靜態頁面有異乎尋常的熱愛,特別是google,更是如此;而我們通常所作的網站中,大部分都是動態,一般通過參數的方式來進行動態網頁面的顯示的,那麼我們能不能通過一種簡單的辦法來達到產生靜態網頁的目的呢?特別是對於虛擬機器主機的使用者,沒有太多的空間,又不能對伺服器配置變更,這個難度就比較大了.
下面,我已親身經曆,來詳細描述一下實現的原理和具體做法:
我們已中國二手市場為例來說明.
中國二手市場http://www.2shoushichang.com/也是一個專著於二手資訊的網站,從大的方面來說也算是分類資訊網站,一開始也是採用動態網頁的模式,通過參數的方式來實現二手資訊的展示的.
比如,如果我們想查看電腦分類的所有資訊,需要下面的串連http://www.2shoushichang.com/BigTypeList.aspx?id=100,如果想看更細的筆記本的分類需要開啟下面的串連:http://www.2shoushichang.com/MidtypeList.aspx?id=100102,同樣,如果想查看手機/mp3等的資訊,需要在參數id後面跟上不同的類別id.我想,在分類資訊裡面,這種形式至少要佔到95%以上,別的資訊類網站,大部分也是採用的這種方式.
但是,對於spliter來說,他們不理解參數的意思,一般一個分類只採集一頁或幾頁,很少能全部採集的(好像baidu比較喜歡採集).設想一下如果我們按照另外一種方式來處理,比如,對於電腦分類,第一頁我們可以這種來設計:http://www.2shoushichang.com/bigtype/s-100-all-1.aspx能不能更好呢.我對於這個地址給大家詳細解釋一下:
其中,bigtype表示分類,表示要對資訊類別中的大類進行處理,後面的s表示出售資訊,100表示資訊類別的id(這裡表示電腦),all表示所有的地區,1表示第一頁,這樣,這一個地址就表示了http://www.2shoushichang.com/BigTypeList.aspx?id=100&page=1這樣一個地址.
同樣http://www.2shoushichang.com/Midtype/s-101100-qingdao-3.aspx表示的是查詢青島地區手機類別的第三頁,它取代的地址是http://www.2shoushichang.com/MidtypeList.aspx?id=101100&city=青島&type=s&Page=3
通過這種方式,我們就可以把所有查詢都統一成固定地址的網頁.
當然,對於顯示資訊的頁,如http://www.2shoushichang.com/Product.aspx?id=10864,我們可以處理成這樣http://www.2shoushichang.com/Product/10864.aspx這種方式.
這樣,我們就可以把我們網站上幾乎所有需要動態處理的地方,已靜態網頁的方式來實現了.

可能有人會說,這也太麻煩了,我需要建立多少網頁啊,需要佔用多少空間呀!!!
其實,不麻煩,不用額外佔用任何空間,也不用真實的建立任何網頁,你所有的程式幾乎都不用動,只需要在Global.asax加上幾行代碼就行了.
不信,我們就繼續闡述一下具體實現方法.
我們是通過捕獲使用者的請求,然後通過RewritePath來實現的:
這是我程式中的一段代碼,它就負責把上面的那些請求轉化為真正的頁面請求,
我們是通過Regex來區分各種類別的請求的:
protected void Application_BeginRequest(Object sender, EventArgs e)
                {                                                                       
                        string url = Request.Url.AbsoluteUri ;
                        string strMatch = @"http://www.2shoushichang.com/([^/]+)/" ;
                       
                        string newUrl = "" ;
                        string strCmd = SplitInfo(url,strMatch) ;
                        if (strCmd != null)
                        {
                                switch(strCmd.ToLower())
                                {

                                        case "product":
                                                strMatch = @"/product/(d+).aspx" ;
                                                string strProductId = SplitInfo(url,strMatch) ;
                                               
                                                if (strProductId != null)
                                                {
                                                        newUrl = string.Format("..\Product.aspx?id={0}",strProductId) ;
                                                        this.Context.RewritePath(newUrl) ;       
                                                }
                                                break ;
                               
                                        case "midtype"://s-100100-All-2.aspx
                                                strMatch = @"/midtype/(S+-d+-S+-d+).aspx" ;
                                                string strResult = SplitInfo(url,strMatch) ;
                                               
                                                if (strResult != null)
                                                {
                                                        string[] strParam = strResult.Split('-') ;//MidtypeList.aspx?id=100100&city=威海&type=s&Page=3
                                                        if (strParam.Length != 4)
                                                                break ;
                                                        string city = AppGlobal.GetCityNameByCode(strParam[2]) ;
                                                        newUrl = string.Format("..\MidtypeList.aspx?type={0}&id={1}&city={2}&page={3}",strParam[0],strParam[1],city,strParam[3]) ;
                                                        this.Context.RewritePath(newUrl) ;       
                                                }
                                                break ;                                       
                                        case "其它處理":
                                                break;
                                        default:
                                                break ;
                                }

                        }                       
                }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.