PbootCMS V3.2.5 版本中为了增强安全性或优化URL结构,加入了对URL参数的严格判断。当URL中包含?但不符合特定条件(如/?tag=、/?page=、/?ext_)时,系统会自动返回404错误页面。这种做法虽然有助于防止一些非法请求,但也可能导致合法的请求被误判为无效,特别是对于那些依赖于其他查询参数的页面。
if(stripos(URL,'?') !== false && stripos(URL,'/?tag=') == false && stripos(URL,'/?page=') == false && stripos(URL,'/?ext_') == false){ _404('您访问的内容不存在,请核对后重试!');}
这个判断很容易理解,就简单解释:
伪静态模式下,如果URL中存在 '?' 问号
但是不存在 '/?tag=' 字符串(tag用的)
又不存在 '/?page=' 字符串(分页用的)
也不存在 '/?ext_' 字符串(筛选用的)的情况下就直接给你来个404
也就是说直接一棍子打死了所有传参的可能性,但是某些业务中就是需要通过URL来传参
那么我们可以注释掉该判断或者在该判断里追加条件
该判断位于首页控制器(apps/home/controller/IndexController.php)43~45行,找到进行注释或者追加条件即可
理解修改:
修改前的代码可能是直接进行了首页的重定向或加载。
修改后的 $this->getIndexPage(); 方法调用应该是为了更灵活地处理首页或其他页面的加载逻辑,确保即使URL中包含?但不符合上述条件时,也能正确加载页面而不是直接返回404错误。
版权:文章搜集与网络,如有侵权请联系本站, 转载请注明出处:https://www.xuanhaojc.cn/wangzhanzhishi/pbootcmsjiaocheng/195.html