我刚刚在我的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并再次删除后,路线再次神奇地工作。一切都好。
如果有人能说明为什么会发生这种情况,这可能有助于下一个遇到这种情况的人。但对我来说,问题已经解决了。
答案 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]