首页 文章

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

提问于
浏览
1

关于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 回答

  • 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
    

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

相关问题