0

我在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_pageindex.php.

4

1 回答 1

0

我相信这是因为 CodeIgniter 处理它的 URL 的方式。我实际上不确定 Codeigniter 为什么这样做,但它们包含index.php在 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/"

或者

同时指定 a$config['base_url']$config['index_page']

有关更多信息,请参见此处: http: //ellislab.com/codeigniter/user-guide/general/urls.html(删除 index.php 文件)

于 2013-06-09T19:01:35.383 回答