寻求一些帮助,Rewwite Rules不是我的强项。
旧购物车是Zencart,我们已迁移到开放式购物车并保持所有产品ID完好无损。我们想将OLD Urls重定向到新位置。
Zen Cart网址 http://website.com/index.php?main_page=product_info&products_id=11294
重定向到新位置/ Opencart网址 http://website.com/index.php?route=product/product&product_id=11294
我已经厌倦了一些不同的尝试并没有运气,只是使用上面的网址,但是,我仍然需要根据ID重定向
任何人都可以对此有所了解吗?
答案 0 :(得分:0)
有一种更好的方法可以做到这一点,那就是使用OpenCart本身来动态重写URL。所以打开/catalog/controller/common/seo_url.php
找到这一行
// Decode URL
在添加以下内容之前
if(!isset($this->request->get['_route_'])) {
if(isset($this->request->get['main_page']) && isset($this->request->get['products_id'])) {
if($this->request->get['main_page'] == 'product_info') {
$this->request->get['route'] = 'product/product';
$this->request->get['product_id'] = (int) $this->request->get['products_id'];
unset($this->request->get['main_page']);
unset($this->request->get['products_id']);
return;
}
}
}
这实质上是指如果网址包含product_info
作为main_page
参数,则route
设置为product/product
(产品页面路由)和{{1设置为product_id
(注意两者之间的复数vs单数)
答案 1 :(得分:0)
将此代码放入DOCUMENT_ROOT/.htaccess
文件中:
RewriteEngine On
RewriteCond %{QUERY_STRING} (?:^|&)products_id=([^&]+) [NC]
RewriteRule ^(index\.php)?$ /$1?route=product/product&product_id=%1 [L,NC,R=301]