Prestashop图片模块路由异常:带后缀/多级路径URL返回404
解决Prestashop中
/generateimage/多级路径及带后缀URL的404问题 直接修改hookModuleRoutes中的路由规则,用正则捕获组匹配/generateimage/之后的所有内容,就能解决多级路径、带文件后缀URL返回404的问题。
具体实现代码
public function hookModuleRoutes() { return [ 'module_你的模块名_generateimage' => [ 'controller' => 'generateimage', // 替换为你的前端控制器名称 'rule' => 'generateimage/{params:.*}', 'keywords' => [ 'params' => ['regexp' => '.*'] ], 'params' => [ 'fc' => 'module', 'module' => '你的模块名' // 替换为实际模块名称 ] ] ]; }
关键说明
rule字段里的{params:.*}会把generateimage/之后的所有内容(包括斜杠、点号、文件名后缀等)全部捕获为params参数keywords中的regexp设为.*,确保Prestashop路由解析器不限制参数的格式- 在前端控制器中,你可以通过
Tools::getValue('params')或者直接读取控制器的$params['params']值,拿到/generateimage/之后的完整内容
注意事项
- 替换代码中的
你的模块名和generateimage为实际的模块名称与控制器名称 - 修改完成后,必须清除Prestashop后台缓存(路径:高级参数 -> 性能 -> 清除缓存),新路由才能生效
- 删除之前定义的旧路由规则,这一条规则已经覆盖了所有
/generateimage/开头的URL请求
内容的提问来源于stack exchange,提问作者Petr
相关产品推荐
相关产品推荐

