.htacces重定向从zencart移动到opencart

时间:2014-01-05 02:25:50

标签: php .htaccess mod-rewrite redirect opencart

寻求一些帮助,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重定向

任何人都可以对此有所了解吗?

2 个答案:

答案 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]