在opencart 1.4 至 1.5版本中,默认的重写模块(即catalog/controller/common/seo_url.php文件)存在一个非常严重的bug。
当开启url重写时,访问多重产品目录的时候,前面的目录无论名称对错,只要最后一个目录名称正确,页面就会显示正常,而不是404错误。在官方下载列表以及最新的git源中,这个错误一直没有被修正。
在官方的支持列表里列出的插件站、演示站中,随便打开一个站,都可以重现这个bug。如:
- http://www.tylsoft.net/opencart-module/modules
- http://www.tylsoft.net/opencart-module111/modules
- http://www.tylsoft.net/zzzz222222/modules
等url显示的内容是一样的。
修正方法为:catalog/controller/common/seo_url.php 文件的39行处
将
$this->request->get['route'] = 'error/not_found';
修改为:
$this->request->get['route'] = 'error/not_found'; break;