codeigniter - 未找到 Codeigniter 页面 - 迁移到 Live Server
问题描述
我正在将基于 CI 的代码上传到实时网站,但它不断收到错误 404。
网络结构是这样的:
web
-Application
-Assets
-Cache
-..so on
index.php
这是我的 Application/Config/Routes.php 文件:
$route['default_controller'] = 'H';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
这是我的 H 控制器:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class H extends CI_Controller {
function __construct(){
parent::__construct();
if(empty($this->session->userdata("userData")['id'])) redirect('/login');
}
public function index()
{
$data = array();
if(isset($_GET['guid'])){
$data['post'] = getListPost($_GET['guid']);
}else{
$data['post'] = getStickyPost();
}
$this->load->view('partials/header');
$this->load->view('home',$data);
$this->load->view('partials/sidebar-home');
$this->load->view('partials/footer');
}
public function materi()
{
$this->load->view('partials/header');
$this->load->view('management/post/lists');
$this->load->view('partials/footer');
}
}
这是我的登录控制器:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
public function index($slug="")
{
if(isset($_POST['username'])){
$cek = $this->checkLogin($_POST['username'], $_POST['password']);
if($cek){
$newdata = array("userData"=>array(
'name' => $cek[0]['nama'],
'id' => $cek[0]['id'],
'nip' => $cek[0]['nip'],
'jabatan' => $cek[0]['jabatan'],
'unit_kerja' => $cek[0]['unit_kerja'],
'foto' => $cek[0]['foto'],
'hak_akses' => ($cek[0]['hak_akses_knowledge_management']=="")?"pengguna":$cek[0]['hak_akses_knowledge_management'],
'unit_kerja_atasan' => $cek[0]['unit_kerja_atasan'],
'email' => $_POST['username'],
'logged_in' => TRUE));
$this->session->set_userdata($newdata);
redirect('/');
}else{
$this->session->set_flashdata('login_status','false');
redirect('/login');
}
}
// $this->load->view('partials/header');
// $this->load->view('partials/login');
// $this->load->view('partials/footer');
$this->load->view('partials/single_login');
}
public function logout(){
$this->session->sess_destroy();
redirect('/');
}
public function newlogin(){
$this->load->view('partials/single_login');
}
function checkLogin($email,$password){
$this->db->where("nip",$email);
$this->db->where("password",$password);
$query = $this->db->get("data_pegawai");
return $query->result_array();
}
}
当我将路由更改为默认路由时,它可以正常工作,但当我返回“H”时,它会不断收到错误 404。
这是视图文件夹的结构:
management
infografis
post
ebook
partials
header.php
single_login.php
footer.php
sidebar-home.php
login.php
category
infografis.php
ebook.php
errors
home.php
post.php
welcome_message.php
解决方案
即使控制器文件名和类名以大写字符开头,路由也应该是小写的。
所以, H.php
,class H extends CI_Controller
是正确大写的。但是,$route['default_controller']
应该分配一个小写的值。
尝试使用
$route['default_controller'] = 'h';
而不是,'H'
你应该启动并运行
推荐阅读
- javascript - 文本复制到剪贴板时的反馈
- python - 特定类型的任何集合的类型注释
- mongodb - When is it better to pull all data and filter, or pull the data filtered
- c++ - 如何在没有循环的情况下在 C++ 中打印人类可读的文件大小
- android - 如何让andorid studio中的函数参数停留在代码格式化的单行中?
- python-3.x - 有没有办法在 pytest HTML 报告中创建部分?
- mysql - 在 MySQL Workbench 错误的“where 子句”中接收“未知列”Dense_Rank
- python - 我如何在没有硒的情况下在 python 中登录我的路由器
- java - 如何从选项卡式片段创建自定义警报对话框?
- r - 在 R 中使用 JJAS 平均值的泰勒图