为什么函数在Codeigniter默认控制器中不起作用?

khe*_*duk 2 codeigniter

我有一个全新的codeigniter安装.我只是想在我的默认控制器中使用一个函数,如下所示:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {

    public function index()
    {

        $data = array(
           'title' => 'Welcome',
           'description' => 'Welcome Page'
        );

        $this->load->view('layouts/header',$data);  
        $this->load->view('home/home');
        $this->load->view('layouts/footer',$data);
    }

    public function contact()
    {

        $data = array(
           'title' => 'Contact Us',
           'description' => 'Contact Page'
        );

        $this->load->view('layouts/header',$data);  
        $this->load->view('home/contact');
        $this->load->view('layouts/footer',$data);
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经使用htaccess成功删除了index.php.现在,当我访问example.com/welcome/contact时,它可以工作,但不是example.com/contact/.

为什么这不应该在没有使用路由的情况下默认工作?

Kha*_*ara 6

在codeigniter中使用路由,这样你就可以为每个路由器重新编写新的uri

$route['contact'] = 'welcome/contact';
Run Code Online (Sandbox Code Playgroud)

并且不要忘记htaccess文件

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)