2014-07-21 31 views
1

我管理的舊網站與具有相同名稱的多個領域, 谷歌已經收錄了一些舊的URL與語言結構排除在htaccess的重寫規則的子重定向

http://www.example.com/eng/whatever 

http://www.example.it/eng/whatever 

和現在我不再使用這種結構,但我想重新定向到我的新結構

http://www.example.it/en/whatever 

所以在/eng/之後的所有內容都必須附加到新的結構中,不包括子字符串。 但它不工作,我有一個重定向到

http://www.example.it/en/eng/whatever 

這是不對的!我不想/英在重定向URL

在我的.htaccess我有這個

#this will redirect the url with /eng/whatever to www.example.it/en/whatever, regardless from the top level domain 
RewriteRule ^eng\/(.*)$ http://www.example.it/en/$1 [R=301,L] 

#redirect example.com on www.example.it/en/ 
RewriteCond %{HTTP_HOST} ^([^.:]+\.)*example\.(com|pt)?(:[0-9]*)?$ [NC] 
RewriteRule ^(.*)$ http://www.example.it/en/$1 [R=301,L] 

回答

1

嘗試用這個剛剛更換了這一切:

RewriteRule ^eng/(.*) en/$1 [R,L,NE,DPI] 

如果一切正常,您可以將R更改爲R=301

警告

要測試這個,你必須使用一個新的瀏覽器。這是因爲瀏覽器緩存301重定向,所以您的當前瀏覽器將保持重定向到舊的(錯誤的頁面),甚至沒有與您的服務器通話並點擊新的.htaccess - 無論您清除瀏覽器緩存。

+0

我測試過它,它的工作原理!我不知道NE和DPI的標誌。 非常有用,謝謝! – loru88

+0

好的,我沒有閱讀規則,對不起 謝謝你的解釋 – loru88