簡體   English   中英

301重定向舊osCommerce鏈接的最佳方法

[英]Best way to 301 redirect old osCommerce links

我們正在從舊版osCommerce安裝遷移到WordPress。 90%的流量來自自然結果,並且擁有超過4,000個被索引的產品頁面,重定向到新網站至關重要。

舊站點的URL結構:

/product_info.php?cPath=1&products_id=4

其中cPath => osCommerce category和products_id就是這樣。 這兩個都包含在osCommerce數據庫中

新網站:

/categoryname/product-title

由於我們正從ID轉向永久鏈接,將所有這些URL動態301到正確位置的最佳方法是什么? 我在想,也許是一個PHP腳本來生成.htaccess文件,有人有經驗嗎? 我可以將類別ID映射到正確的WordPress類別標簽,然后刮取舊站點以使舊產品URL與產品標題匹配。 這是最好的方法/甚至可能嗎? 我的頭撞在這里的牆上。

我已經看過了,但是它並不適用,因為我試圖動態地重定向所有舊產品,或者至少動態地生成重定向(就像我說的那樣,大約有5000種產品) 重寫htaccess舊的oscommerce鏈接


編輯:我的想法:

1.創建.htaccess文件。

RewriteCond %{REQUEST_URI}  ^/product_info\.php$
RewriteCond %{QUERY_STRING} ^cPath=([0-9]+)&products_id=([0-9]+)
RewriteRule ^(.*)$ http://www.domain.com/redirect.php?cat=%1&product=%2? [R=301,L]

2.它將所有匹配的請求發送到自定義php 301重定向腳本

3.腳本包含一個category_names => id pairs數組,已經映射到正確的數據庫值(沒有數據庫調用),以及一個單獨的products_names => product_ids數組

4.匹配類別和產品信息后,腳本會將您推到正確的位置:

$yourNewLocation = $cat . '/' . $product . '/';
function return_301($yourNewLocation){
   header ('HTTP/1.1 301 Moved Permanently');
   header ('Location: '. $yourNewLocation);
}

可能的瓶頸:5000+的關聯數組? 是要獲取所需信息的主要瓶頸還是mysql連接?

“我正在考慮也許是一個PHP腳本來生成.htaccess文件”

如果您要這樣做,建議您將重定向放置在httpd包含而不是.htaccess中,使用.htaccess時會降低性能-包含在這方面可能會更好。

另外,如果您要使用php將ID映射到永久鏈接:

header ('HTTP/1.1 301 Moved Permanently');
header ('Location: '.$yourNewLocation);

我不是100%確定您的計划是否是“最佳方法”,但聽起來確實合理。.(當然,使用php +數據庫調用動態重定向比使用.htaccess或include方法更容易受到打擊!)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM