多级控制器动态路由,参数id验证是否正整数时,如果/id 是逗号隔开会报错“控制器不存在:app\api\controller\V1",二级控制器目录是小写v1,但是报错时是大写。
访问地址:http://wxshop.com/api/v1/banner/a,1
路由:Route::get(‘api/:version/banner/:id’,‘api/:version.Banner/getBanner’);
查找后发现是tp更新一次漏洞时
在think\route\dispatch\Url类的parseUrl方法,解析控制器后加上
if (KaTeX parse error: Expected 'EOF', got '&' at position 12: controller &̲& !preg_match('…/’, $controller)) {
throw new HttpException(404, ‘controller not exists:’ . $controller);
}