2011-11-21 61 views
0

我的代碼控制器中有兩個目錄。代碼控制器中的目錄

/控制器/管理/

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

/控制器/構件/

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

由於目錄的文件夾本身不是控制器,如果用戶瀏覽到該目錄的根目錄我不能執行任何功能。

例如,如果用戶瀏覽到

/localhost/admin/ 

視圖不會被加載,並不會顯示404這可以讓用戶知道該目錄是存在的,給我一個安全風險,因爲人們會知道我有一個管理員目錄。

如果用戶瀏覽到目錄文件夾的根目錄,如何顯示404消息?

回答

1

你可以在配置/ routes.php文件添加此:

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

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

...這裏的錯誤是page_missing的方法,在這裏裝載了「找不到文件」視圖控制器。

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(); 
    } 
} 

這樣,您不必撥弄路由或重寫規則。簡單而乾淨。