【发布时间】:2017-10-21 21:59:19
【问题描述】:
我安装了 CI 3 并添加了已重命名的以前版本的控制器和模型文件。我浏览了这些文件,文件名的第一个字母是大写的。
在本地主机上运行该站点时,即http://localhost:81/sitename/ 它会显示主页。
但是当控制器名称及其函数名称附在 url 上时,即 - http://localhost:81/sitename/login 它会导致
404 页面未找到
未找到您请求的页面。
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
config.php
$config['base_url'] = 'http://localhost:81/sitename/';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI'; //tried with AUTO also
routes.php
$route['default_controller'] = 'member';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
自动加载.php 我已经提到了 url 助手
$autoload['helper'] = array('url', 'file');
控制器成员.php
<?php
class Member extends CI_Controller {
private $controller = '';
private $data = array();
private $base_layout = '';
function __construct() {
parent::__construct();
// $this->load->library('input');
$this->load->library('email');
$this->load->model('member_model');
$this->controller = strtolower(__CLASS__);
$this->base_layout = 'layouts/main_content';
$this->is_logged();
}
function is_logged() {
if(!$this->session->userdata('logged_in'))
$this->base_layout = 'layouts/login';
$this->load->view('layouts/login');
}
}
控制器登录.php
<?php
class Login extends CI_Controller {
private $controller = '';
function __construct() {
parent::__construct();
$this->controller = strtolower(__CLASS__);
$this->load->model('login_model');
$this->is_logged();
}
public function index() {
$this->load->view('layouts/login');
}
function is_logged() {
date_default_timezone_set('Asia/Singapore');
$sess_data = $this->session->userdata('logged_in');
if($sess_data) {
if($sess_data['user_type']=="pre"){
$c_time = mktime();
//$c_time = date('h:i:s a');
$open = strtotime('Today 10am');
$close = strtotime('Today 8pm');
if ($c_time > $open && $c_time < $close) {
redirect('member', 'refresh');
} else {
$this->session->unset_userdata('logged_in');
redirect('login', 'refresh');
}
}else{
redirect('member', 'refresh');}
}
}
function auth() {
date_default_timezone_set('Asia/Kolkata');
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
$this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_check_database');
if($this->form_validation->run() == FALSE) {
//Field validation failed. User redirected to login page
redirect('login', 'refresh');
} elseif($this->input->post('usertype')!="admin") {
$c_time = mktime();
//$c_time = date('h:i:s a');
$open = strtotime('Today 10am');
$close = strtotime('Today 8pm');
if ($c_time > $open && $c_time < $close) {
redirect('member', 'refresh');
} else {
redirect('login', 'refresh');
}
//redirect('member', 'refresh');
}
}
}
当我尝试使用以下链接时,主页会显示,但给定的样式不会出现
http://localhost:81/sitename/index.php/login
登录页面是我的主页,但是尝试登录时没有进入控制器功能。对此有什么解决方案吗?
【问题讨论】:
标签: php .htaccess codeigniter codeigniter-3