我的codeigniter控制器中有两个目录。
/控制器/管理/
/控制器/构件/
因为目录文件夹本身不是控制器,所以如果用户浏览目录的根目录,我就无法执行任何功能。
用户浏览
的示例 /localhost/admin/
视图将不会加载,也不会显示404.这可以让用户知道该目录确实存在,给我带来安全风险,因为人们会知道我有一个管理目录。
如果用户浏览目录文件夹的根目录,如何显示404消息???
答案 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方法的控制器,您可以在其中加载“找不到文件”视图。