2015-12-21 48 views
2

最近,我改變了我的網站從靜態html WordPress的,並在此過程中我一直在重定向我所有的前任和不存在的頁面與我的。 htaccess文件,每當谷歌顯示我抓取錯誤。直到今天,我已成功地將所有爬行錯誤重定向。我的老index.html拋出一個抓取錯誤,當我使用:重定向不存在的index.html在WordPress的主頁是造成過多的重定向瀏覽器

Redirect 301 /index.html http://www.example.com 

...我得到這個從我的瀏覽器:

重定向過多發生試圖打開www.example.com。如果您打開被重定向到開,然後被重定向到開原頁面其他網頁的網頁可能發生這種情況。*

因爲我已經從我的.htaccess文件中刪除上面的重定向,並且將只與爬行生活錯誤,如果我不能得到解決。但我在想有人知道如何解決這個問題,如果是的話,如果你讓我知道如何,我會很感激。

+1

您是否在htaccess中有任何其他重定向 – starkeen

+0

現在目錄索引文件是什麼? – starkeen

+0

是的,就像我在原文中所說的那樣,「我一直在用我的.htaccess文件重定向所有以前和不存在的頁面,只要Google顯示我抓取錯誤,我已經成功地將所有抓取錯誤重定向到今天。 「當我進入我的Google網站管理員帳戶並點擊抓取錯誤時,我需要訪問我網站上的一個頁面,頁面上顯示「找不到頁面」。有了過去我發現的所有其他抓取錯誤,我只是使用我的.htaccess文件將抓取錯誤鏈接重定向到我希望它轉到的頁面並修復它。不是這樣的錯誤。它似乎索引必須以不同的方式處理。 – MsEvette

回答

1

如果您的DirectoryIndex設置爲index.html(作爲第一個選項),您可能會遇到此重定向循環,這很可能是您服務器上的默認設置。

基本上,當你訪問一個目錄,例如。 http://example.com/(根目錄),那麼DirectoryIndex指令會告訴服務器要通過哪個文件(通過內部重寫)。例如。 http://example.com/index.html。這然後種子重定向循環。

既然你使用WordPress,你可以在.htaccess改變這種偏愛index.php代替。例如,在你的.htaccess文件的頂部:

DirectoryIndex index.php index.html 

但是,您也可以通過使用mod_rewrite(這可能是最好)解決這個問題。事實上,自從WordPress的已經使用了mod_rewrite(如RewriteRule指令),那麼你也應該使用mod_rewrite爲您重定向,而不mod_alias中(如Redirect指令)。您不應該混合使用.htaccess中的兩個模塊的重定向,因爲您可以輕鬆獲得衝突。不同的模塊在不同的時間執行,不管他們在.htaccess中的順序如何。

通過使用mod_rewrite,你可以通過對THE_REQUEST檢查避免重定向循環。例如:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html [NC] 
RewriteRule ^index\.html$/[R=301,L] 
+1

感謝w3d,您上面張貼的mod_rewrite修復了我的錯誤! – MsEvette