代码之家  ›  专栏  ›  技术社区  ›  Jethro Hazelhurst

codeigniter HMVC路由显示一个文件夹而不是另一个文件夹禁止403

  •  0
  • Jethro Hazelhurst  · 技术社区  · 8 年前

    我为自定义路由设置了两个文件夹。

    第一个是我的Admin文件夹,用于管理所有内容。

    第二个是我的应用程序,这是老师用来管理他们的东西的地方。

    以下是我在中的路由规则 config/routes.php ...

    /**
     * Admin Area
     */
    $route['admin/(:any)'] = 'admin/$1'; // admin folder
    
    /**
     * Teacher Area
     */
    $route['app/(:any)'] = 'app/$1'; // app folder
    

    这是我的管理员控制器,当我去我的网站。com/admin-it工作正常

    <?php
    
    class Admin extends MX_Controller
    {
        public function index()
        {
            // login
            if (!$this->session->userdata('is_admin')) {
                redirect('admin/users/login');
            }
    
            $this->load->model('classes/Class_Model');
            $data['classes'] = $this->Class_Model->getClasses();
    
            // load module and view
            $data['field']  = $field;
            $data['search'] = $search;
    
            $data['module'] = 'admin';
            $data['view_file'] = 'admin_cpanel';
    
            $this->load->module('templates');
            $this->templates->admin($data);
        }
    }
    

    这是我的应用程序文件夹,当我进入mysite时。com/app显示403禁止错误。

    <?php
    
    class App extends MX_Controller
    {
        public function index()
        {
            // login
            if (!$this->session->userdata('is_teacher')) {
                redirect('app/users/login');
            }
    
            $this->load->model('classes/Class_Model');
            $data['classes'] = $this->Class_Model->getClasses();
    
            // load module and view
            $data['field']  = $field;
            $data['search'] = $search;
    
            $data['module'] = 'app';
            $data['view_file'] = 'teacher_cpanel';
    
            $this->load->module('templates');
            $this->templates->teachers($data);
        }
    }
    

    为什么它对一条路线有效,但对另一条路线无效?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Jethro Hazelhurst    8 年前

    解决方案是,我已将重命名后的应用程序文件夹命名为App,因此无法将其重新用作模块文件夹名称。