CodeIgniter路由未生效

时间:2016-03-16 17:29:46

标签: codeigniter routes xampp

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

在复制的项目中,default_controller工作正常但我的路线都不起作用。

我的路线:

$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 $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

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

修改

设置404_override并再次删除后,路线再次神奇地工作。一切都好。

如果有人能说明为什么会发生这种情况,这可能有助于下一个遇到这种情况的人。但对我来说,问题已经解决了。

2 个答案:

答案 0 :(得分:0)

好吧,问题是我使用大写字母表示复制项目的名称,但是试图在识别这两者之间的系统上使用小写来访问它。

所以,愚蠢的

答案 1 :(得分:0)

我认为问题是你正在使用这样做

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

而不是你试试

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