设想
我有一个网站,我正在升级到 CodeIgniter 3 的当前开发版本。我已按照升级说明将所有类文件重命名为大写(例如 application/controllers/Home.php)
预期结果
对于小写 URL,可以正常使用控制器,例如:
使用 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]
非常感谢任何帮助。
编辑 1
我已将其范围缩小到_validate_request
核心路由器中的功能。如果我注释掉从_set_request
.
编辑 2
如果我将_validate_request
函数的名称更改为_validate_request2
并使用新名称调用它,它会完美运行。这个函数名是保留字吗?