CodeIgniter 路由未生效

CodeIgniter routes not taking effect

我刚刚在我的 XAMPP htdocs 中将一个 codeigniter 项目从一个文件夹复制到另一个文件夹。这两个项目包含完全相同的代码,它们只是在不同的目录中。

在复制的项目中,default_controller 工作正常,但我的 none 路线工作。

我的路线:

$route['default_controller'] = 'home';
$route['404_override'] = '';
$route['dashboard'] = 'dashboard';

索引文件位于localhost/project/www

如果我转到 localhost/project/www/dashboard,我会收到 404。

但是如果我这样做:

$route['404_override'] = 'dashboard';

然后当我转到 localhost/project/www/dashboard(或任何其他路径,当然会给出 404)时,仪表板控制器会正确加载

问题不在 .htaccess 文件中,因为它只是通用的:

RewriteEngine on
RewriteCond  !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]

正如我所说,代码刚刚从一个目录复制到另一个目录。关于什么阻止我的路线正常工作的任何想法?我错过了什么吗?

编辑

设置 404_override 并再次删除后,路由又神奇地起作用了。一切都好。

如果有人能阐明发生这种情况的原因,那可能会帮助下一个遇到这种情况的人。但是对我来说,问题已经解决了。

好的,问题是我使用大写字母作为复制项目的名称,但试图在可区分这两者的系统上使用小写字母访问它。

所以,笨蛋

我认为问题是你是这样使用的

RewriteEngine on
RewriteCond  !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]

不如你试试

RewriteEngine On
RewriteBase /www/
RewriteCond  !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/ [L]