错误:尚未在CI 3.0

时间:2015-08-11 04:34:58

标签: php codeigniter routes

我已成功在我的本地计算机上运行测试网页,它可以正常工作!但是当我将它上传到生产服务器(iPage)时,我收到了这个错误:

  

遇到错误
  无法确定应显示的内容。尚未在路由文件中指定默认路由。

我这里有.htacess文件:

 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond $1 !^(index\.php|assets|img|bg|robots\.txt)
 RewriteRule ^(.*)$ index.php?/$1 [L] 

在应用程序文件夹之外。

和我的routes.php:

$route['default_controller'] = 'login';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

并在我的config.php中:

$config['base_url'] = 'http://example.com/System';
$config['uri_protocol'] = 'REQUEST_URI';
$config['enable_query_strings'] = TRUE;

我在控制器文件夹中使用ff代码登录了login.php:

 defined('BASEPATH') OR exit('No direct script access allowed');

class login extends CI_Controller {
    function __construct() {
        parent::__construct();
        $this->load->model('login_model');
        /* enable session */
        $this->load->library('session');
    }

 public function index()
    {
        if ( ! file_exists(APPPATH.'/views/index.php'))
        {
            /* Whoops, we don't have a page for that! */
               show_404();

        }

        $this->load->view('index'); 
       $this->load->view('templates/footer');   

   }    

我错过了还是做错了什么?

2 个答案:

答案 0 :(得分:1)

CodeIgniter 3要求您的以Ucfirst方式命名文件名必须与类名匹配。

因此,您需要将“login.php”重命名为“Login.php”,并将类声明更改为class Login extends CI_Controller

答案 1 :(得分:0)

您的路线包含

$route['default_controller'] = 'login';

因此,控制器页面名称应为login.php

内部login.php

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

    class Login extends CI_Controller//check this
    {
        public function  __construct()
        {
            parent::__construct();
    }
  

简要:检查此class Login extends CI_Controller

base_url应该是

$config['base_url'] = '';