codeigniter控制器中的目录

时间:2011-11-21 11:25:40

标签: codeigniter controller directory http-status-code-404

我的codeigniter控制器中有两个目录。

/控制器/管理/

  • dashboard.php
  • content.php
  • enquiries.php

/控制器/构件/

  • profile.php
  • chat.php
  • 的settings.php

因为目录文件夹本身不是控制器,所以如果用户浏览目录的根目录,我就无法执行任何功能。

用户浏览

的示例
 /localhost/admin/

视图将不会加载,也不会显示404.这可以让用户知道该目录确实存在,给我带来安全风险,因为人们会知道我有一个管理目录。

如果用户浏览目录文件夹的根目录,如何显示404消息???

2 个答案:

答案 0 :(得分:1)

我这样做是在我不想隐藏的目录中创建默认控制器welcome.php并添加show_404()函数。像这样:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {

    public function index()
    {
        show_404();
    }
}

这样,您不必操纵路线或重写规则。简单干净。

答案 1 :(得分:1)

您可以在config / routes.php中添加:

$route['admin'] = 'errors/page_missing';

$route['members'] = 'errors/page_missing';

...其中,Errors是一个带有page_missing方法的控制器,您可以在其中加载“找不到文件”视图。