我已成功在我的本地计算机上运行测试网页,它可以正常工作!但是当我将它上传到生产服务器(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');
}
我错过了还是做错了什么?
答案 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'] = '';