事实证明,可以通过相对简单的更改单个文件来完成。没有.htaccess重写规则,只需修补catalog / controller / common /
seo_url.php文件,然后将漂亮的URL添加到现有数据库表中。
seo_url.php的补丁:
Index: catalog/controller/common/seo_url.php===================================================================--- catalog/controller/common/seo_url.php (old)+++ catalog/controller/common/seo_url.php (new)@@ -48,7 +42,12 @@ $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information';-}+} else {+ $query = $this->db->query("SELECt * FROM " . DB_PREFIX . "url_alias WHERe keyword = '" . $this->db->escape($this->request->get['_route_']) . "'");+ if ($query->num_rows) {+ $this->request->get['route'] = $query->row['query'];+ }+} if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']);@@ -88,7 +87,15 @@ } unset($data[$key]);- }+ } else {+ $query = $this->db->query("SELECt * FROM " . DB_PREFIX . "url_alias WHERe `query` = '" . $this->db->escape($data['route']) . "'");++ if ($query->num_rows) {+ $url .= '/' . $query->row['keyword'];++ unset($data[$key]);+ }+ } } }需要两个编辑。第一个扩展
index()功能,以在
url_alias表中查找是否有 任何
关键字匹配
$this->request->get['_route_']。
第二个扩展了
rewrite()功能,可以在
url_alias表中查找 所有 路线,而不仅仅是产品,制造商和信息页的路线。
向数据库添加条目:
INSERT INTO `url_alias` (`url_alias_id`, `query`, `keyword`) VALUES(NULL, 'checkout/cart', 'cart');
而已。http://example.com/cart应该返回与http://example.com/index.php?route=checkout/cart相同的内容,并且OpenCart应该识别
$this->url->link('checkout/cart');并返回指向漂亮URLhttp://的链接example.com/cart



