2014-01-08 108 views
0

由於使用了相對URL,Google Crawler以某種方式錯誤地將我們的網站編入索引。 經過Google對索引URL的分析後,我們得出結論:除了一些例外情況,我們應該通過在尾部斜線之後的部分重新定向URL。因此,我們試圖在下面列出很多這些網址以及它們應該如何重定向。通過使用htaccess保留URL參數來保留跟蹤後的網址

/a.php/ - Redirect to /a.php 
    /a.php// - Redirect to /a.php 
    /a.php - Retain as it is 
    /a.html - Retain as it is 
    /a.php/a.html - Redirect to /a.html 
    /a.php/b.php?a=b - Redirect to /b.php?a=b 
    /a.html/b.php - Redirect to /b.php 
    /a.html/b.php/c.html - Redirect to /c.html 
    /a.php/b.php?a=b/c.php?a=b - Redirect to /c.php?a=b 
    /a.html/b.php - Redirect to /b.php 

請注意的index.php已經重定向到www.domain.com 你能爲我們提供了一個htaccess的代碼,我們可以用它來實現這些重定向

+0

你需要顯示你已經嘗試過。 – Jon

+0

我們嘗試了一些無法使用的代碼。不幸的是,我沒有這個代碼片段。但我記得它只能刪除尾部的斜線。總而言之,這不是有用的。 – user3172991

+0

任何幫助請... – user3172991

回答

1

幫助,我相信這應該工作:

# This should match the first two 
RewriteCond %{THE_REQUEST} (/[^/]+)(/+) HTTP/1\.[01]$ 
RewriteRule .* %1 [L,R=301] 

# This should match the rest, without matching /a.php and /a.html 
RewriteCond %{THE_REQUEST} !^[A-Z]+ /[^/]+ HTTP/1\.[01]$ 
RewriteCond %{THE_REQUEST} ^[A-Z]+ (/[^/]+)?(/[^/]+)(/[^/]+) HTTP/1\.[01]$ 
RewriteRule .* %3 [L,R=301] 
+0

這應該放置在htaccess文件的開頭 – user3172991

+0

這取決於你的htaccess文件還有什麼,你可以提供完整的htaccess文件,以便我可以確認正確的位置?並確保沒有規則衝突? – Jon

+0

我試圖加載到htaccess但得到500服務器錯誤。也嘗試過在零件上做,但仍然出現錯誤。看起來像有分鐘。 2錯誤。你能幫忙嗎?如果你喜歡,我也可以在skype – user3172991