2011-02-18 35 views
3

我發現了從www到非www的重定向的解決方案,但反之亦然。有沒有「簡單」的解決方案來做到這一點? www或非www的區別是什麼?我應該使用哪一個?僅僅是因爲版本較短?我只使用一個版本的原因是因爲SEO。ASP.NET MVC 2從非www到www的重定向

回答

3

下面是一些你可能會發現有用的背景資料:http://www.mattcutts.com/blog/seo-advice-url-canonicalization/

http://mydomain.com實際上是從http://www.mydomain.com一個單獨的域。因此,如果您在兩個域中擁有相同的內容,則它們將被視爲相互重複。

我通過在IIS中設置兩個站點來處理我的重定向,然後執行從一個到另一個的永久301重定向。如果您需要,也可以在代碼中執行此操作,但這不是我的首選方法。看到一個選項:

void Application_BeginRequest(object sender, EventArgs e) 
{ 
    string FromHomeURL = http://yourdomain.com;  
    string ToHomeURL = http://www.yourdomain.com; 

    if(HttpContext.Current.Request.Url.ToString().ToLower().Contains(FromHomeURL)) 
    { 
     HttpContext.Current.Response.Status = "301 Moved Permanently"; 
     HttpContext.Current.Response.AddHeader("Location", 
     Request.Url.ToString().ToLower().Replace(FromHomeURL, ToHomeURL)); 
    } 
} 

我不認爲會有使用或沒有,但更好的使用區別:http://www.eworldui.net/blog/post/2008/04/25/ASPNET-MVC-Legacy-Url-Routing.aspx

2

您可以在Global.asax文件中使用此代碼對任何asp.net應用程序只有一個版本。 Google網站管理員工具中還有一個首選域的設置。我更喜歡使用非www。那麼做stackoverflow.com :)