【问题标题】:Directories in codeigniter controllercodeigniter 控制器中的目录
【发布时间】:2012-01-02 21:42:03
【问题描述】:

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

/控制器/管理员/

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

/控制器/成员/

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

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

如果用户浏览到的示例

 /localhost/admin/

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

如果用户浏览到目录文件夹的根目录,怎么可能显示 404 消息???

【问题讨论】:

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


    【解决方案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();
        }
    }
    

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

    【讨论】:

      【解决方案2】:

      你可以在 config/routes.php 中添加这个:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-24
        • 2012-07-10
        • 2015-12-11
        • 1970-01-01
        • 2012-08-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多