Я вижу, что вы пытаетесь сделать, и я бы предложил другой подход.
Создайте MY_Controller и поместите его в основную папку. Вот базовое представление о том, что должно быть в этом файле.
class Public_Controller extends CI_Controller
{
// The data array holds all of the information to be displayed in views
public $data = array();
function __construct()
{
parent::__construct();
// Authentication library handles sessions and authentication, etc...
$this->load->library('Authentication');
$this->data['account']['is_logged_in'] = $this->authenication->is_logged_in();
}
}
class Auth_Controller extends Public_Controller
{
function __construct()
{
parent::__construct();
if ( !$this->data['account']['is_logged_in'] )
{
redirect('user/login', 'location');
}
}
}
Если вы сделаете это таким образом, то для контроллеров, требующих аутентификации, вы можете просто расширить Auth_Controller, в противном случае расширить Public_Controller.