CodeIgniter 404不是页面

时间:2018-01-21 12:09:41

标签: php .htaccess codeigniter

我刚学习CI,但我遇到了以下问题。 我用class home创建了一个控制器home.php(字母大小相同)。控制器加载视图home_view。

在config.php中,我有以下参数:

config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';

routes.php文件:

$route['default_controller'] = 'home/index';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

.htaccess文件

DirectoryIndex home.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./home.php/$1 [L,QSA]

我在哪里犯错?

2 个答案:

答案 0 :(得分:0)

在您的.htaccess文件中,您将所有回调重定向到文件home.php,而不是默认CI的默认索引文件,并且此home.php不存在(正如您所说它是一个控制器,它应该在控制器中文件夹)

htaccess应该是这样的:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

这样,来自codeigniter的index.php文件加载所有requierd文件(config,routes等)并调用config.php文件中指定的控制器。

答案 1 :(得分:0)

routes.php:

  

$ route ['404_override'] ='my404';

创建控制器 my404.php:

?php 
class my404 extends CI_Controller 
{
    public function __construct() 
    {
        parent::__construct();
    } 

    public function index() 
    { 
       $this->load->view('error_404');//loading in my template 

    } 
} 
?>