2015-09-09 44 views
1

我的網站例如carparts.co.uk擁有355000個獨特的網址。 (這是一個汽車零部件目錄網站)(在網站管理員工具上顯示174000這些索引)如何爲大型網站實現網址重定向

我們希望將我們的網站遷移到新的購物車平臺(prestashop),並完全改變了結構目錄,這意味着我們現在有一組新的網址。 (雖然主域名不變,仍然是carparts.co.uk) 我現在有一個Excel表格,其中有一個355000'舊'urls列與新目錄上最接近的等效網址匹配。 例如

old url: "carparts.co.uk/ford-ranger-alternator belts.htm" 
goes to: "carparts.co.uk/belt-drive" 

(也有類似的重定向355,000)

我的問題是我應該怎麼辦呢? 我認爲你可以使用htaccess來做到這一點,但我很擔心,因爲我讀過htaccess,如果它非常大(如果訪問其中一箇舊網址時,這種慢度只會被加載?還是會影響速度我所有的網址?

等什麼對我來說是這樣的大量網址,最好的辦法?

+0

'它會影響我所有網站的速度嗎?是的,使用.htaccess會減慢整個網站,因爲它必須在每個頁面請求上讀取.htaccess文件。如果你訪問服務器配置,最好將它們放在那裏,這樣會降低性能。 –

回答

1

您最好的選擇可能是建立一個RewriteMap指令。這就要求服務器vhost配置訪問,因爲你不能從htaccess文件配置映射(儘管你可以使用一個)。映射由apache緩存,因此你不需要擔心文件的不斷訪問。

一些簡單的東西:

RewriteMap redirects txt:/full/path/to/redirect-map.txt 

然後在文件中redirect-map.txt只會有一個 「從」 和 「到」:

"ford-ranger-alternator belts.htm" belt-drive 
old-url.htm new-url 
etc... 

然後在任何您的htaccess文件或虛擬主機的配置,只是做:

RewriteCond $(redirects:$1|0) !=0 
RewriteRule ^(.*)$ $(redirects:$1) [L,R] 
+0

好的解決方案,但我仍然建議配置與.htaccess如果OP有權訪問它。 –

0

使用htaccess會降低網站速度,因爲它需要檢查每個請求的多個文件,並且這些文件會針對每個請求動態檢查。

這對於深層路由網站來說更是一個問題。例如,一個請求:

www.example.com/folder1/folder2/folder3/folder4/index.htm 

需要檢查

  • 主配置文件。
  • 然後在文檔根 htaccess文件中添加任何覆蓋。
  • 然後在folder1 htaccess文件中添加任何覆蓋。
  • 然後在folder2 htaccess文件中添加任何覆蓋。

...等等。

但是,如果你沒有很深的嵌套,那麼它不是那麼糟糕。仍然比不使用它們慢,但在大多數網站上可能不明顯。

在這裏htaccess的好處將意味着你不需要把所有的重定向放在一個地方,並可以在htaccess文件中分割它們。我不確定將355,000個重定向添加到主Apache配置的影響,但它是一個公平的數字,所以想象它可能會對性能產生影響。另一方面,htaccess文件會在請求發生時動態讀取,因此所有重定向都不需要加載到Apache中。

因此,這可能是少數幾個使用htaccess的解決方案之一,即使您可以訪問主配置文件。