2013-06-08 3 views
0

У меня есть контроллер welcome ниже, что перенаправление на функцию другого контроллера в controllers/auth/login.phpКак запустить функцию другого контроллера с base_url, указанным в config.php

function __construct() { 
    parent::__construct(); 

    $this->load->helper('url'); 
    $this->load->library('tank_auth'); 
} 

function index() { 
    if (!$this->tank_auth->is_logged_in()) { 
     redirect('/auth/login'); 
    } else { 
     $data['user_id'] = $this->tank_auth->get_user_id(); 
     $data['username'] = $this->tank_auth->get_username(); 
     $this->load->view('welcome', $data); 
    } 
} 

В данном случае config.php:

$config['base_url'] = ''; 
$config['index_page'] = 'index.php'; 

он работает хорошо. Но когда я уточнил base_url в конфигурационном файле в:

$config['base_url'] = 'http://localhost/cilog/'; 
$config['index_page'] = ''; 

Object not found. почему это так? но он работает снова, когда я указал index_page на index.php.

ответ

0

Я считаю, что это связано с тем, как CodeIgniter обрабатывает URL-адреса. Я действительно не уверен, почему Codeigniter делает это, но они включают index.php там URL.

Так что ваш URL будет выглядеть примерно так http://localhost/cilog/index.php/auth/login

Вы можете переписать файл .htaccess удалить index.php, помещая это в:

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

и сохранить ваш $config['base_url'] слишком "http://localhost/cilog/"

OR

указать bo го в $config['base_url'] и $config['index_page']

Смотрите здесь для получения дополнительной информации: http://ellislab.com/codeigniter/user-guide/general/urls.html (удаление файла index.php)