无法访问codeigniter中的第二个控制器

时间:2014-11-10 12:07:23

标签: codeigniter codeigniter-2

我为admin创建了一个单独的控制器,为front-end创建了一个我可以访问前端控制器并且可以访问它的功能但是当我尝试访问管理控制器时我可以&#t; ti我使用.htacess文件重写网址。我的网址看起来像http://localhost/bookstore/index

前端控制器:

<?php 
class Bookstore extends CI_Controller {

   function __construct()
    {
        parent::__construct();
        $this->load->helper(array('url','form','file','cookie','captcha'));
        $this->load->library(array('session','pagination','form_validation'));
        $this->load->model('bkmodel');
    }

    public function index()
    {
        $this->load->view('index');
    }
}

管理员控制器:

class Adminstore extends CI_Controller {

   function __construct()
    {
        parent::__construct();
        $this->load->helper(array('url','form','file','cookie','captcha'));
        $this->load->library(array('session','pagination','form_validation'));
        $this->load->model('admin_model');
    }

   public function index()
    {
        $this->load->view('admin/index');
    }
}

路线文件如下所示:

$route['default_controller'] = "bookstore";
$route['(:any)'] = "bookstore/$1";
$route['404_override'] = '';

我被困在这里,为什么第二个控制器不工作请指出我的错误,所以当我想访问管理员时,我可以再进一步检查我的网址就像这个http://localhost/bookstore/adminstore/index并且它说404页面找不到

1 个答案:

答案 0 :(得分:1)

在“任意”规则之前,您需要另一个路由规则,该规则几乎可以重定向所有内容。所以,这样的事情应该有效:

$route['default_controller'] = "bookstore";
$route['adminstore/(:any)'] = "adminstore/$1";
$route['(:any)'] = "bookstore/$1";
$route['404_override'] = '';

请记住,规则会按顺序从上到下进行检查,因此任何不太具体/全局的内容都应该排在最前面。 “任何”规则应该在最底层。