OpenCart 3 SEO URL 无法正常工作

OpenCart 3 SEO URLs not working correctly

看来这不是一个罕见的问题,但我找不到合适的解决方案。

我的假设是,既然有 SEO URLs 核心模块,它就应该在没有任何额外模块或 .htaccess 编辑的情况下完成工作。但是在我启用 System/Settings/Server 中的 SEO URL 之后,并不是我所有的 URL 都是 SEO。有的改成了SEO,有的还是index.php?route=account/registerindex.php?route=information/contactindex.php?route=product/product&path=57&product_id=49

我应该怎么做才能解决这个问题?

在 Opencart 3x 中有两种方法可以解决这个问题。

第一种方法

  1. 转到design/SEOURL
  2. 点击新增
  3. 在查询中添加 account/register 或 information/contact 或路由路径或 product/category id。
  4. 输入关键字(应该是唯一的)
  5. Select 存储和语言并保存。

第二种方法

请使用以下任何人的免费扩展...

  1. SEO URL issue fix in Opencart 3.x By Sainent
  2. Seo Friendly Urls
  3. SEO_URL remove common/home,information/contact ... index.php
  4. Opencart Seo All Links

要删除 common/home 您需要更改以下文件

从 catalog/controller/startup 打开 seo_url.php。

找到

} elseif ($key == 'path') {

并替换为

 } elseif ($key == 'route') {
 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "seo_url WHERE `query` = '" . $this->db->escape($value) . "' AND store_id = '" . (int)$this->config->get('config_store_id') . "' AND language_id = '" . (int)$this->config->get('config_language_id') . "'");
if ($query->num_rows && $query->row['keyword']) {
$url .= '/' . $query->row['keyword'];
unset($data[$key]);
} else if ($data['route'] == "common/home") { 
$url .= '/'; 
} 

} elseif ($key == 'path') {

希望这个回答对您有所帮助