2015-08-21 3 views
0

Я хочу перенаправить пользователя на страницу входа, если не зарегистрированКак перенаправить с крюком на другой контроллер

мой крюк HK_Login.php внутри приложения/крюки

<?php 

    class HK_Login 
    { 
     private $CI; 
     public function checkLogin() 
     { 
      $this->CI =& get_instance(); 
      if($this->CI->session->userdata('ID') == '' && $this->CI->uri->segment(3) != 'login') 
      { 
       redirect($this->CI->uri->segment(1) . '/secure/login'); 
      } 

     } 
    } 

мой контроллер Secure.php внутри приложения/контроллеры

<?php 
class Secure extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function login() 
    { 
     $this->load->view('login/index'); 
    } 
} 

результат:

Not Found 

The requested URL /web/secure/login was not found on this server. 

Мой .htaccess

DirectoryIndex index.php 
RewriteEngine on 
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 

часть моей config.php

$config['index_page'] = ''; 
$config['uri_protocol'] = 'REQUEST_URI'; 
$config['enable_hooks'] = TRUE; 

автозагрузку

$autoload['helper'] = array('url', 'custom'); 
$autoload['libraries'] = array('database', 'session'); 

крюк конфигурации

$hook['post_controller_constructor'][] = array(
    'class' => 'HK_Login', 
    'function' => 'checkLogin', 
    'filename' => 'HK_Login.php', 
    'filepath' => 'hooks' 
); 

Это мои маршруты.php

$route['default_controller'] = 'dashboard'; 
$route['404_override'] = ''; 
$route['translate_uri_dashes'] = FALSE; 

Зачем нужна эта ошибка?

добавлены в routes.php

$route['/secure/login'] = 'secure/login'; 

Дайте ту же самую ошибку

+0

Как вы относитесь к следующим типам маршрутов? – mdamia

+0

$ route ['default_controller'] = 'dashboard'; $ route ['404_override'] = ''; $ route ['translate_uri_dash'] = FALSE; – Artic

ответ

0

вы получаете сообщение об ошибке, потому что маршрут не найден. добавьте это в свой маршрут.

$route['secure/login'] = 'secure/login'; 
+0

добавлен, но не работает – Artic

+0

В начале маршрута была обратная косая черта, не должно было быть там. вам должно быть хорошо идти. – mdamia

+0

дают ту же ошибку без косой черты перед безопасностью – Artic

Смежные вопросы