default_controller(在routes.php中)不在生产中工作

时间:2012-06-09 05:42:48

标签: php codeigniter routing

关于codeigniter routes.php:

我们在C:\ wamp \ www \ application \ config \ routes.php

中有以下条目
$route['default_controller'] = 'latestC';
$route['404_override'] = 'latestC';

和latestC是我们的默认控制器。这里default_controller不能在生产中使用。如果我们删除行$ route ['404_override'] ='latestC';来自routes.php,我们无法访问主页,同时点击主url mozvo.com和它的404.基本上404_override正在为我们工作而不是default_controller在主页上点击mozvo.com。请求由404_override控制器路由到主页。

但是在localhost中,它完美无缺。在localhost中,如果我们删除404_controller,default_controller会处理主url(mozvo.com,这里是localhost),而其他不支持的url是404,这是正确的。但是在生产中,default_controller没有正确进入主页(mozvo.com),所以我们被迫使用404_override将默认请求带到主页。

其他信息 - C:\ wamp \ www \ application \ config \ config.php

中的条目
$config['base_url']    = 'http://mozvo.com/';
$config['index_page'] = '';

1 个答案:

答案 0 :(得分:7)

我打赌你的问题是由于文件的区分大小写。您的本地主机在WAMP上 - Windows不关心文件大小写。

即。 latestC.php = latestc.php = LASTESTC.php

但在您的生产服务器上(我猜测它是一个LAMP) - 区分大小写是否重要

即。 latestC.php!= latestc.php!= LASTESTC.php

所有控制器必须是Codeigniter的LOWERCASE。所以改变您的路线

$route['default_controller'] = 'latestc'; // all lowercase
$route['404_override'] = 'latestc'; //all lowercase

并确保所有文件都是小写的