我在控制器welcome
下面重定向到controllers/auth/login.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 :(得分:0)
我相信这是因为CodeIgniter处理它的URL的方式。我不确定为什么Codeigniter会这样做,但它们在URL中包含index.php
。
因此,您的网址看起来像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
同时指定$config['base_url']
和$config['index_page']
有关详细信息,请参阅此处:http://ellislab.com/codeigniter/user-guide/general/urls.html(删除index.php文件)