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_pageしかし、指定すると再び機能しますindex.php

4

1 に答える 1

0

これは、CodeIgniter が URL を処理する方法によるものだと思います。Codeigniter がこれを行う理由は実際にはわかりませんが、index.phpURL に含まれています。

したがって、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/"

また

$config['base_url']との両方を指定する$config['index_page']

詳細については、こちらを参照してください: http://ellislab.com/codeigniter/user-guide/general/urls.html (index.php ファイルの削除)

于 2013-06-09T19:01:35.383 に答える