在Global.cs中
protected void Application_BeginRequest(object sender, EventArgs e)
{
string strUrl = Request.Url.ToString().Trim().ToLower();
if (strUrl.Contains("http://bianyun.net"))
{
Response.RedirectPermanent(strUrl.Replace("http://bianyun.net", "http://www.bianyun.net"));
}
}
ASP.NET MVC4 增加了一個RedirectPermanent方法,該方法同樣是重定向,但生成的HTTP響應狀態不是上邊所演示的302,而是301(永久跳轉),301 是對搜索引擎最友好的重定向方式。你網站主域http://www.bianyun.net ,當人們訪問http://bianyun.net 這個URL時,你就把他們重定向到http://www.bianyun.net,第一可以增加用戶體驗、有些人習慣輸入網址帶www、有些人不帶www,做了301重定向處理都能友好的返回訪問結果。第二:當搜索引擎爬到site:bianyun.net這個網址時,如果它不能很好地跟隨重定向,它將認為http://bianyun.net請求下沒有內容的,所以這個頁面的排名將會非常靠后。大家都知道一級域名收錄量要比二級域名收錄量的好。因為這個是包含關系。
當然301永久重定向可以做域名更換或者Url按照一定規則批量改變等一些有利自身網站權重的事情,如果我們把一個地址采用301 跳轉方式跳轉的話,搜索引擎會把老地址的PageRank等信息帶到新地址,同時在搜索引擎索引庫中徹底廢棄掉原先的老地址。
關於重定向是一級域名重定向二級還是二級重定向一級問題沒有糾結的必要。我曾經不知道在那個網上看的說谷歌提倡使用不帶www的。但是用戶習慣www的輸入習慣。這個沒有定性結論。網站牛逼啥也一樣。這個這里就不多提了。
補充:IIS做301永久重定向處理
(iis-找到網站-屬性-主目錄-選擇重新定向到URL(U)-勾選 資源的永久重定向 )但發現一個問題,只有首頁,或者內頁,不帶?參數的頁面可以正常301重定向,而帶有參數的內頁,都丟失了參數。這樣肯定不行,因為很多內頁收錄了。
找了半天終於找到了解決辦法:
iis-找到網站-屬性-主目錄-選擇重新定向到URL(U)(http://www.bianyun.net$S$Q)-勾選 資源的永久重定向和上面輸入的准確URL(U)。
OK,這樣設置后,不管是首頁,還是內頁全站都有了301重定向了。