很多網站用類似這種形式http://www.yourdomain.com/index.html/連結向自己的首頁。問題是大部分指向網站首頁的外部連結使用的是http://www.yourdomain.com/ ,因此分散了指向網站的連結權重。注意到這點的站長想要解決他們的內部鏈接,要從http://www.yourdomain.com/index.html做301轉向到http://www.yourdomain.com/ 。但是處理不好的話會產生循環轉向問題。
當有人輸入http://www.yourdomain.com/來到你的網站,互聯網DNS系統幫助瀏覽器找到網站所在的伺服器,然後網站伺服器怎麼決定顯示什麼給瀏覽器?它要調用網站伺服器硬碟上的一個文件。
沒有指定檔案時(也就是如上面例子,只指定了網域),伺服器調入一個被稱為預設檔的檔案。這個檔案的檔案名稱常常是index.html/index.htm/index.shtml/index.php或default.asp。
檔案名稱實際上可以任意的,但大部分網站伺服器預設為某種檔案名稱。很多CMS回顯示網站首頁的兩種形式:http: //www.yourdomain.com/和http://www.yourdomain.com/index.php ,這就會帶來問題。
可能網站所有頁面都連結至http://www.yourdomain.com/index.php ,但是由於習慣,第三方給你的首頁連結大部分指向http://www.yourdomain.com/ 。如果搜尋引擎看到首頁的兩個版本並認為它們是單獨的文件,就會產生複製內容問題。 Google在解決這個問題方面已經很聰明了,但最好不要依賴它們。
你可能決定解決方法是使用301轉向從http://www.yourdomain.com/index.php轉向到http: //www.yourdomain.com/。聽起來不錯,不幸的是有個大問題。當伺服器看到http://www.yourdomain.com /index.php請求,然後看到應該301轉向到http://www.yourdomain.com/ ,它就這麼做了。但當它調入http: //www.yourdomain.com/時,要取得預設檔案(index.php)就要調入http://www.yourdomain.com /index.php,然後伺服器又看到你要轉向到http://www.yourdomain.com/ ,這就產生了無限循環。
預設檔案轉向方法
下面的方法指的是前面index.php的例子。你需要放上你自己的伺服器所用的恰當預設檔名。
1.複製index.php內容到另外一個文件。在這個例子中我使用sitehome.php。
2.給文件根目錄建立一個Apache DirectoryIndex指令,設定為sitehome.php。不要在整個伺服器層級設定這個指令,否則其他還需要以index.php為目錄預設檔的資料夾會產生問題。
3.在檔案根目錄的.htaccess檔案中放上:DirectoryIndex sitehome.php。或者如果你沒有使用每個目錄單獨的文件,在你的httpd.com檔案中放上下面的程式碼:
<Directory/your/document/root/examplesite.com/>
DirectoryIndex sitehome.php
</Directory>
4.刪除原本index.php檔案中的內容,插入下面這行程式碼:
<? header("Location:http://www.example.com");?>
這個設定使index.php不是目錄首頁檔案(也就是預設檔名)。當有人輸入規範化URL( http://www.yourdomain.com/ ) 時強制讀取sitehome.php。來自舊連結的對index.php的請求現在被301轉向,同時避免可無限循環。
如果你使用CMS,設定完上面這些後,還需要確保所有內容連結都指向規範化URL( http://www.yourdomain.com/ )。如果因為某些原因CMS開始指向http://www.yourdomain.com/sitehome.php ,循環的問題又會發生,強迫你再做一次整個過程。
文章由湛江SEOhttp://www.wwoyy.com首發,轉載請保留!
(責任編:揚揚) 作者天道軟文的個人空