很多網站用類似這種形式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首發,轉載請保留!