使用Codeigniter 2.1获得404-HMVC 5.4


Getting 404 using Codeigniter 2.1 - HMVC 5.4

这是我第一次尝试hmvc,但它出了问题。。。我正试图通过不同的模块来分隔我的站点区域。然后,我的意图是使用hmvc的_auth来控制访问。这是我最初的结构:

/application
  /modules     <-- hmvc
    /public_zone
       /controller
        public_zone.php
       /view
        ...
    /private_zone
     ...

因此,为了做到这一点(在核心和第三方文件夹上安装hmvc),我尝试将"public_zone"控制器设置为"default_controller"他的任务是加载根页面('localhost'),但*返回404错误*

这是我的public_zone.php文件:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Public_zone extends MX_Controller {
   public function index()
    {
      $this->load->view('include/header');
      $this->load->view('frontpage');
      $this->load->view('include/footer');
    }
}

也许问题出在routes.php(application/config/routes.php)文件上?我试试这个:

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

有人能告诉我我做错了什么吗我肯定误解了一些hmvc的概念。。。但事实是,我不知道为什么它不起作用:(

首先,保持CI结构不变很重要。所以你需要这样的结构:

/application
    /controllers
        public_zone.php
    /views
        frontpage.php
        /include
           header.php
           footer.php
    /models

当然,您还需要CI.附带的其他文件夹

其次,您需要对控制器进行一些更改才能使其工作。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Public_zone extends CI_Controller {
 public function __construct()
 {
   parent::__construct();
 }
 public function index()
 {
   $this->load->view('include/header');
   $this->load->view('frontpage');
   $this->load->view('include/footer');
 }
}

经过这些更改后,它应该可以工作:)还请务必阅读用户指南:http://codeigniter.com/user_guide/

这可能会花费你一些时间阅读,但以后会节省你很多时间。

祝你好运!