CodeIgniter 3 类文件名首字母大写导致 404

Pau*_*ner 5 codeigniter codeigniter-3

设想

我有一个网站,正在升级到 CodeIgniter 3 的当前开发版本。我已按照升级说明将所有类文件重命名为大写(例如 application/controllers/Home.php)

预期结果

对于正常使用控制器的小写 URL,例如:

http://examplesite.com/home/

使用 Home.php 控制器。

我得到了什么

当 url 首字母小写时,不会自动调用大写文件名。(404 错误)。

我努力了

  • 输入控制器的首字母大写的 URL,即。http://examplesite.com/Home/这将按预期生成控制器。
  • 将routes.php 中的默认控制器大写,这会按预期生成页面。但是,如果这意味着我必须更改所有 URL 以包含首字母大写的控制器,那就不太理想了。

笔记

  • 该网站在 PHP 5.3.17 FastCGI 上运行。
  • index.php 已从 URL 中删除,.htaccess 规则为:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助。

编辑1

我已将其范围缩小到_validate_request核心路由器中的功能。如果我注释掉对该函数的调用,它就会起作用_set_request

编辑2

如果我将函数的名称更改_validate_request_validate_request2并使用新名称调用它,则它可以正常工作。这个函数名是保留字吗?

Nar*_*arf 3

在评论中解决了,写这篇文章只是为了使其正式......

升级时,您必须始终检查是否有核心 CodeIgniter 库的扩展。如果是这样,很可能您至少重载了其中的一部分,并且在更改原始代码时可能会破坏应用程序。