我正在用Codeigniter开发网上销售产品的webs应用程序,并从Ci2.2.1升级到CI3.0。然而,当我在url上输入域名时遇到了一个错误,当我在url上输入域名时,没有被希望default_controller调用的任何控制器加载,而不是输入我的主控制器。
注释:它正在运行Ci2.2.1,在升级到CI3.0.时停止工作。
如果我在域名后键入任何字符或任何控制器(http://localhost/Ecom3/sometroller),它就可以工作,但不能调用default_controller,并且在域后(http://localhost/Ecom3/)保持空或空。
错误日志:错误- 2015-04-24 03:48:57 -> 404页未找到: /index
请查看我的网站结构如下:
Main->Main_controller->MY_controller->CI_Controller我的目的是使控制模板变得容易。

在MY_controller中,我使用了__autoload()函数
function __autoload($class){
if (strpos($class, 'CI_') !== 0)
{
if (file_exists($file = APPPATH . 'libraries/' . $class .'.php'))
{
include_once $file;
}
}
}和我信任下面的路线
$route['default_controller'] = "main/Main";
$route['(:any)'] = 'main/main/index/$1';
$route['c'] = 'cat/cat/index/$1';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;问题:我的url不能是空白的,在我键入域之后,或者在如下图所示的前斜杠之后

请帮帮忙
发布于 2015-04-24 07:39:14
当您的控制器中的Main.php放置在controller/main文件夹中时,我尝试您的代码并得到404。但是当我将Main.php移动到controller文件夹时,默认控制器到Main有工作。然后我试着调试并查看:
// Is the method being specified?
if (sscanf($this->default_controller, '%[^/]/%s', $class, $method) !== 2)
{
$method = 'index';
}in core/Router.php
这意味着codeigniter3不允许您在子文件夹中设置default_controller。您必须将default_controller放在app/controller/中以使其工作。
在config/router.php中,更改如下:
$route['default_controller'] = "main/Main";至:
$route['default_controller'] = "Main";然后移动控制器文件:
app/controller/main/Main.php
至
app/controller/Main.phphttps://stackoverflow.com/questions/29838294
复制相似问题