【问题标题】:.htacces redirect moved from zencart to opencart.htaccess 重定向从 opencart 移动到 opencart
【发布时间】:2014-01-05 02:25:49
【问题描述】:

寻求帮助,Rewwite 规则不是我的强项。

旧购物车是 Zencart,我们已迁移到打开购物车并保持所有产品 ID 不变。我们想将旧网址重定向到新位置。

Zen 购物车网址 http://website.com/index.php?main_page=product_info&products_id=11294

重定向到新位置/Opencart URL http://website.com/index.php?route=product/product&product_id=11294

我已经厌倦了几次不同的尝试,没有运气,只是使用上面的 url,但是,我仍然需要它根据 ID 重定向

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

【问题讨论】:

    标签: php .htaccess mod-rewrite redirect opencart


    【解决方案1】:

    有一种更好的方法可以做到这一点,那就是使用 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;
                }
            }
        }
    

    这实质上是如果 URL 包含 product_info 作为 main_page 参数,route 设置为 product/product(产品页面路由),product_id 设置为 products_id(注意两者之间的复数与单数)

    【讨论】:

      【解决方案2】:

      将此代码放入您的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]
      

      【讨论】:

        猜你喜欢
        • 2010-12-07
        • 1970-01-01
        • 2017-09-23
        • 2023-04-10
        • 2018-11-05
        • 1970-01-01
        • 2012-11-28
        • 2014-01-31
        • 2016-10-04
        相关资源
        最近更新 更多