CodeIgniter - 默认控制器未自动加载

时间:2014-01-26 18:35:03

标签: php .htaccess codeigniter

我有一个默认的控制器集:

$route['default_controller'] = "Home";

但是,当我转到http://mydomain.com/时,它会显示404 Page Not Found,但是当转到http://mydomain.com/Home时,控制器会正常加载。可能是什么问题呢?我几个小时都在挣扎着。如果需要,我的htaccess是posted here。谢谢!

6 个答案:

答案 0 :(得分:2)

原来我的问题有点无关。我不得不将我的默认控制器php文件重命名为小写,控制器类名称重命名为小写,一切都开始工作。当CI查找默认控制器文件时,它会以小写形式搜索文件;如果我将控制器文件命名为“Home.php”而不是“home.php”,则CI会在Linux上错过它(因为Linux文件系统区分大小写)。

答案 1 :(得分:1)

您的路由没有问题,问题在于您的htaccess文件。尝试删除

ErrorDocument 404 /index.php

答案 2 :(得分:1)

你可能有一些.htaccess问题。 托盘这样:

的.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

的config.php

$config['base_url'] = 'www.homepage.com';
$config['index_page'] = '';

routes.php文件

$route['default_controller'] = "yourcontrollername";
$route['404_override'] = '';

答案 3 :(得分:0)

没有任何其他信息&您的配置/控制器中的代码,我建议检查config / config.php这些(在正常情况下都应为空):

$config['base_url'] = '';
$config['index_page'] = '';
IIRC,我看到过类似的问题,它与这些配置变量有关。希望这对你有所帮助。

答案 4 :(得分:0)

我确定这个.htaccess解决了所有ubuntu用户...

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

答案 5 :(得分:0)

我设置了默认控制器:

$route['default_controller'] = "home";

对我有用。