[英]Redirect 301 - try to redirect links from old page asp to new page php
[英]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.