2013-01-03 19 views
0

我有這個塞納里奧在我的網站www.skinb5.com應該重定向到www.skinb5.com/au/當父站點的Application_BeginRequest調用

和www.skinb5.com/au應該直接去www.skinb5.com/au和www.skinb5.com/us

應前往www.skinb5.com/us。

www.skinb5.com是一個父網站,幾乎沒有什麼,但重定向。/au /和/ us /是坐在它下面的子網站。

請查看我的父站點中的Global.asax文件,其中只有重定向發生。

問題是,當我去www.skinb5.com/us/它返回200這是很好的。但是

www.skinb5.com/au/它將302返回到www.skinb5.com/au/。雖然它沒有一個無限循環走了,我很擔心,爲什麼它會返回302

你可能想在http://www.internetofficer.com/seo-tool/redirect-check/

我的問題在這裏測試,當調用www.skinb5.com/au /直接,將調用父項中的application_beginRequest?它不應該直接進入孩子的網站嗎?如果是的話,302重定向如何發生。

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     var redirectSite = "au"; 
     HttpCookie languageCookie = HttpContext.Current.Request.Cookies.Get("Customer.SelectLanguageID"); 
     if (languageCookie != null) 
     { 
      redirectSite = languageCookie.Value.Split('-')[1]; 

     } 

     string rawUrl = HttpContext.Current.Request.RawUrl; 
     if (string.IsNullOrEmpty(rawUrl)) 
     { 
      rawUrl = "/"; 
     } 

     rawUrl = redirectSite + rawUrl; 
     bool useSsl = IsCurrentConnectionSecured(); 
     var storeHost = GetStoreHost(useSsl); 
     if (storeHost.EndsWith("/")) 
      storeHost = storeHost.Substring(0, storeHost.Length - 1); 
     string url = storeHost + '/' + rawUrl; 
     url = url.ToLowerInvariant(); 
     HttpContext.Current.Response.Redirect(url, true); 
     HttpContext.Current.Response.End(); 


    } 

回答

0

重定向告訴瀏覽器加載不同的URL。瀏覽器會這樣做,就像在地址欄中輸入新的URL一樣。這是一個像任何其他要求。

因此,所有請求和重定向都將導致Application_BeginRequest()觸發。

如果您不希望它對重定向的請求執行任何操作,則需要測試目標URL並決定是否採取任何操作。

相關問題