CMF5.1.5路由bug


今天下载了一个ThinkCMF5.1.5 portal版,安装后在管理后台添加文章分类,访问文章分类时报路由错误。

经过代码分析,发现问题以及解决。


image.png


bug 相关说明:




ThinkCMF\vendor\thinkphp\library\think\route\RuleItem.php 272行


$regex = $this->buildRuleRegex($rule, $matches[0], $pattern, $option, $completeMatch);
print_r($regex);exit;


打印正则匹配规则发现字符串的第一个/ 没有转义


image.png

拼接正则规则字符串后输出


image.png


确定问题所在 

/^/行情观点(\/(?\d+))/u

应改为

/^\/行情观点(\/(?\d+))/u


解决方式:


第一种:

ThinkCMF\vendor\thinkphp\library\think\route\RuleItem.php 274行 添加反斜杠转义

image.png


第二种:

ThinkCMF\vendor\thinkphp\library\think\route\Rule.php 1014行插入代码

$regex = str_replace('/','\/',$regex);

image.png


到此问题解决


image.png



如果有更好的解决方式欢迎留言讨论

打赏

评论

暂时关闭,稍后恢复~
文档请看10遍以上!有问题可加QQ群!
发表话题

源素材推荐

提问必知

0.话题发布后没及时显示,请联系官方QQ群管理;
1.话题支持代码,qq截屏直接粘贴,和QQ群一样;
2.问题描述清,比如服务器版本,程序版本;
3.能上代码,就不用文字;
4.把问题发到话题后再发QQ群;
5.如果感觉回复者解答的不错,可以发红包!
6.多帮助别人也是对自己的锻炼!
7.付费讨论中只有提问者和付费用户才可以查看回复

积分规则

1.评论积分+1;每天最多10次奖励
2.发布话题积分+1;每天最多5次奖励
3.垃圾评论积分-500;
4.黄色,暴力,违反我国法律评论直接封号


ThinkCMF 8.0.0发布啦!祝大家节日快乐! 立即体验!