多级控制器动态路由,参数id验证是否正整数时,如果/id 是逗号隔开会报错“控制器不存在:app\api\controller\V1"”
来源:9-3 实现Token身份权限体系
qq_青萍之末_2
2020-02-21
多级控制器动态路由,参数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);
}
写回答
1回答
-
7七月
2020-02-22
你访问任何一个网站,都不会在路径里 放逗号
012020-02-24
相似问题