【问题标题】:.htacces redirect moved from zencart to opencart.htaccess 重定向从 opencart 移动到 opencart
【发布时间】:2014-01-05 02:25:49
【问题描述】:
【问题讨论】:
标签:
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]