2015-05-29 5 views
1

У меня есть этот базовый контроллер:Перенаправление цикл в Codeigniter с одним перенаправлением от базового контроллера

class TCMS_Controller extends CI_Controller{ 
    public function __construct(){ 
     parent::__construct(); 
     if(! $this->session->userdata('logged_in')){ 
      redirect('admin/authenticate/login'); 
     } 
     //Loop to get all settings in the "globals" table 
     foreach($this->Settings_model->get_global_settings() as $result){ 
      $this->global_data[$result->key] = $result->value; 
     } 
    } 
} 

Так что у меня есть этот основной редирект:.

redirect('admin/authenticate/login');, если пользователь не вошел в

Также у меня есть эти настройки для удаления index.php с URL:

.htaccess:

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

И следующий конфиг настройки:

$config['base_url'] = 'http://something.herokuapp.com/'; 
$config['index_page'] = ''; 

И когда я пытаюсь получить доступ к админ раздел, который имеет следующий адрес:

http://something.herokuapp.com/admin/controller/method 

И если я не вошел, я предполагается, перенаправлены на login странице:

http://something.herokuapp.com/admin/authenticate/login 

Но вместо этого я получаю цикл редирект

ERR_TOO_MANY_REDIRECTS

Как я могу это исправить?

Страница: http://tcms.herokuapp.com/

Админцентр: http://tcms.herokuapp.com/admin/authenticate/login http://tcms.herokuapp.com/admin/dashobard

+0

Проверьте свою консоль браузера, чтобы узнать, на что на самом деле пытается перенаправить страница. –

+0

Вы не можете найти ссылку для обновления? –

+0

ссылки на сайт – Tachi

ответ

1

Я уверен, что ваш admin (может быть authenticate, если администратор - это имя вашей папки), контроллер также расширяет TCMS_Controller. Поэтому, когда он перенаправляет ваш контроллер admin, он выполняет функцию построения TCMS_Controller и снова перенаправляет контроллер администратора, который вызывает бесконечный цикл.

Для этого необходимо создать контроллер Login, который не распространяется TCMS_Controller просто расширяет CI_Controller.And перенаправляет этот контроллер, если пользователь не зарегистрирован.

+0

admin - это подпапка в папке моих контроллеров со всеми контроллерами, связанными с администратором. – Tachi