做了個多語種網站 不能被GOOGLE,yahoo收錄,baidu可以收錄 終於找到問題

來源:互聯網
上載者:User

做了個多語種網站
在BaseForm類(表單父類)中 重寫InitializeCulture以設定瀏覽器預設語言
 protected override void InitializeCulture()
        {
           CurLanguage  = Request.UserLanguages[0].ToLower();
           string UserCulture = CurLanguage;
            if (UserCulture != "")
            {
                //根據Session的值重新綁定語言代碼
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(UserCulture);
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
            }
        }

///當前頁面語種(封裝對Session["PreferredCulture"] 的讀寫)
 public string CurLanguage
        {
            set
            {
                if (Session["PreferredCulture"] == null)
                {
                    Session.Add("PreferredCulture", value);
                }
                else
                {
                    Session["PreferredCulture"] = value;
                }
            }
            get
            {
                if (Session["PreferredCulture"] == null)
                {
                    Session.Add("PreferredCulture", "");
                    return Utilities.ObjectHelper.GetString(Session["PreferredCulture"]);
                }
                else
                {
                    return Utilities.ObjectHelper.GetString(Session["PreferredCulture"]);
                }
            }
        }

網站發布後沒有問題,但是過了半個月客戶反映GOOGLE沒辦法收錄,BAIDU可以收錄
百思不得其解
一日有了靈感,查看了一下該網站的IIS訪問日誌,發現了一條記錄
 /index.aspx - 80 - 209.85.238.25 AdsBot-Google+(+http://www.google.com/adsbot.html) 500 0 0 竟然有錯誤

然後使用GOOGLE的網站管理員工具進行測試,https://www.google.com/webmasters,都不能通過,還是提示500錯誤

於是自己使用fiddler工具對頁面進行請求,發現了問題所在

通過fiddler發出的請示,其Request.UserLanguages為空白!!!

找到了問題點就好解決了,在取值時加入空值判斷,

 if (Request.UserLanguages == null )
                {
                    CurLanguage = Helpers.GetConfigToString("DefaultLanguage"); ;

                }
                else {
                    if(!string.IsNullOrEmpty(Request.UserLanguages[0])){
                        CurLanguage  = Request.UserLanguages[0].ToLower();
                    }
               
                }

然後重新用fiddler,GOOGLE測試,問題解決,返回期待的"200"

聯繫我們

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