CodeIgniter旧项目测试环境Bearer授权跳转404排查咨询
无服务器权限下的问题排查方向
前端请求层面排查
- 校验请求头拼写兼容性:代码中前端携带的请求头为
autorization,不符合HTTP规范的authorization拼写,可分别在开发、测试环境用Postman携带两种拼写的请求头请求首页,若测试环境只有正确拼写的请求头能正常访问,说明测试服务器未做错误拼写头的兼容配置,导致token未被正常识别触发权限拦截返回404。 - 校验跳转路径正确性:JS中通过
window.location.pathname.replace(/authentication\/?/, '')生成首页地址,可在两个环境的登录页控制台打印当前window.location.pathname,确认测试环境是否存在路径多嵌套层级的情况,导致替换后生成的首页路径不存在。 - 校验token有效性:将两个环境登录获取到的token用本地JWT解析工具解码,对比claim字段、过期时间、签名是否一致,排除测试环境签名密钥配置错误导致token校验失败的问题。
- 区分404返回来源:观察404页面样式,若为CodeIgniter框架自定义404,说明请求已进入框架逻辑;若为Web服务器(Nginx/Apache)默认404,说明请求未走到框架,属于路由/重写配置问题。
业务逻辑层面排查
- 确认首页配置数据:首页404的触发逻辑是
fetch_activated方法查询不到有效首页数据返回null导致,可找有权限的人员核对测试环境home_page表是否存在active>0的启用数据,排除测试环境未配置首页内容的问题。 - 验证权限拦截逻辑:CodeIgniter若配置了全局钩子、基础控制器前置权限校验,可在测试环境不带token直接请求首页,若返回同样的404,说明是token校验未通过,回到请求头透传相关的排查方向。
环境差异排查
- 验证重写规则配置:CodeIgniter需要配置重写规则隐藏入口文件
index.php,可直接请求测试域名/index.php/首页路由,若能正常访问,说明测试环境未配置URL重写规则导致路径解析失败。 - 校验大小写兼容性:若开发环境为Windows/Mac(大小写不敏感)、测试环境为Linux(大小写敏感),核对控制器文件名、类名、路由配置的大小写是否完全匹配,排除大小写不匹配导致找不到控制器的问题。
- 验证路由配置一致性:确认两个环境的
application/config/routes.php配置是否完全一致,有没有测试环境漏配首页路由的情况。
内容的提问来源于stack exchange,提问作者Michael Maurel
相关产品推荐
相关产品推荐

