无法在Codeigniter上加载默认控制器

时间:2014-09-05 12:42:02

标签: php codeigniter routes

这是我得到的错误。

  

请确保Routes.php文件中指定的控制器有效。

让我解释一下。 在我的应用程序中,我使用过HMVC。在我的应用程序文件夹中有两个文件夹back-modules和front-modules。在我的front-modules文件夹中有一个名为" home"它有控制器,模块和视图。

  

controllers-> home.php

这是我的home.php

  class Home extends MX_Controller{
    public function __construct(){
    parent::__construct();
    $this->load->helper(array('form'));
  }

    public function index(){                
    $this->template->build('home');
   }
  }

这是我的routes.php

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

当我尝试访问该网站时,它会出现此错误

  

无法在Codeigniter上加载默认控制器。请确保Routes.php文件中指定的控制器有效。

这个系统在localhost上工作正常。

有人请帮我解决这个问题。

4 个答案:

答案 0 :(得分:0)

通常,URL字符串与其对应的控制器类/方法之间存在一对一的关系。 URI中的段通常遵循以下模式:

example.com/class/function/id/

你的' default_controller'应该是:

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

阅读官方CodeIgniter URI Routing Documentation

答案 1 :(得分:0)

有时候,codeigniter无法找到控制器。

转到config > routers.php

并查看default_controller的值 在控制器文件夹中创建一个具有相同值的控制器。

答案 2 :(得分:0)

请检查.htaccess文件是否存在于您网站的根域。

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1

答案 3 :(得分:0)

根据codegniter手册managing multi application

在index.php文件更改中

$application_folder = 'application';

$application_folder = 'application/home';

并确保控制器文件名以大写字母开头

controllers->Home.php

并保留Routes.php配置

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