Linux环境下ThinkPHP路由配置失效,如何优化大小写敏感匹配问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1270个文字,预计阅读时间需要6分钟。
ThinkPHP默认路由规则依赖于控制器类名与文件名的一致性,要求严格。Linux文件系统区分大小写,而Windows不区分。这是导致本地能跑、线上404的主要原因。
例如,控制器类名为`IndexController`,对应的文件名必须是`IndexController.php`。如果误写为`indexcontroller.php`或`indexController.php`,Linux下将无法自动加载。
常见错误现象:ClassNotFoundException 报错中明确提示找不到 app\controller\IndexController,但文件明明存在;或访问 /index/index 返回 404,而 /Index/index 却能响应(说明路由解析到了,但类加载失败)。
本文共计1270个文字,预计阅读时间需要6分钟。
ThinkPHP默认路由规则依赖于控制器类名与文件名的一致性,要求严格。Linux文件系统区分大小写,而Windows不区分。这是导致本地能跑、线上404的主要原因。
例如,控制器类名为`IndexController`,对应的文件名必须是`IndexController.php`。如果误写为`indexcontroller.php`或`indexController.php`,Linux下将无法自动加载。
常见错误现象:ClassNotFoundException 报错中明确提示找不到 app\controller\IndexController,但文件明明存在;或访问 /index/index 返回 404,而 /Index/index 却能响应(说明路由解析到了,但类加载失败)。

