不加www的域名301轉向解決方法 - 無劍網

不加www的域名301轉向解決方法發布:violam 時間:2008-4-6 14:52:4 分類: SEO/SEM筆記


有些同志提到一個比較仔細的301轉向問題,即加www開頭和不加www開頭的域名,都是綁定在同一個目錄,要讓它們實現統一會遇到麻煩。例如筆者要把http://nosword.com轉向到http://www.nosword.com, 一來是照顧部分人輸入網址不習慣加www的習慣,二來也為了使搜索引擎不至於形成兩份相同的複製內容;而這兩個不同的URL在虛擬主機上通常是綁定到同一個目錄路徑的,甚至使用同一個默認初始文件,如default.asp,index.php等,並且大部分的虛擬主機設置有限,應該如何設置301轉向使得這兩者統一?有同志提出專門使用兩個空間把它們分開,一個空間綁定www.nosword.com, 另一個空間綁定nosword.com,然後再設置轉向,雖然這樣可行但是成本比較高了。筆者在花了一些時間分析後,覺得以下的ASP和PHP解決方案還是比較快捷可行的。

首先,Google的Webmaster Tools後台已經有這個細心的選項,位於"工具(Tools)"菜單下面的"設置首選域名(Set preferred domain)",可以讓網站主手動選擇適合的域名,以防止重複收錄。然而對於百度之類的其他搜索引擎,還沒有提供這樣的管理功能,所以還是不得不在自己的網站之中設置301轉向。因此,我寫了一段簡單的代碼,用於檢測網址之中是否帶有"www."這四個字元,如果沒有,則可以進行301轉向,如果有"www."則保持原樣不做任何動作。把這段代碼放進網站的首頁文件,基本能滿足這個轉向的問題。

ASP版本 - 檢測當前的域名中是否帶有"www."字樣

<% Dim theUrl theUrl = Lcase(Request.ServerVariables("HTTP_HOST") )If Instr(theUrl, "www.")<1 Then "這一行文字可以替換成放置301轉向代碼 Response.Write "測試信息:網址裡面沒有www. 字元,應該轉向" Else Response.Write "測試信息:找到了www. 字元,不做任何動作" End If %>

PHP版本 - 檢測當前的域名中是否帶有"www."字樣

<?php $theurl = strtolower($_SERVER["HTTP_HOST"]); if (strpos($theurl, "www.") === false){ // 這一行文字可以替換成放置301轉向代碼 echo "網址裡面沒有www. 字元,應該轉向"; }else{ echo "測試信息:找到了www. 字元,不做任何動作"; } ?>

上面的代碼再配合樂思蜀的《301轉向代碼合集》(http://www.dunsh.org/2008/03/19/301-redirect-code/),就能完全解決這個鬱悶的問題了,唯一需要注意的是這段簡單代碼志只判斷www存在與否,因此bbs等論壇域名也會被轉向,因此只適用於放在綁定網站的首頁文件之中。我在自己的ASP和PHP網站分別做了測試,並且使用了在線301轉向檢測工具進行測試,都能正確檢測出轉向,因此面對搜索引擎的蜘蛛應該沒有問題,時間問題就不做實際證明了,希望有實踐過的同志證實一下實際效果。

原載:無劍網原文路徑:http://www.nosword.com/200804/no-www-301-asp-php/版權聲明:轉載請以鏈接的形式註明作者及原出處,並保留本版權信息,嚴禁一切非法複製。


推薦閱讀:

擺放水晶的方法
霉運的十大預兆及化解方法
八字財運預測的方法有哪些!(4)
單縣羊湯的製作方法
決明子食用方法 5個決明子功效曝光

TAG:方法 | 域名 | 解決方法 | 劍網 |