You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter3配置.htaccess后仍需带index.php访问且子页面404问题求助

CodeIgniter3 站点异常解决方案

问题1:首页正常,导航跳转其他页面全部返回404

故障原因

CodeIgniter3 运行在Linux环境时严格区分大小写,你的代码存在大小写不匹配问题:

  • 控制器方法名如Getincontact、EDUCATION为大写开头,导航链接里路径写的是小写的pages/getincontact,路由匹配失败
  • 若控制器文件名是小写的pages.php,不符合CI3命名规范(要求控制器文件名与类名首字母大写)也会触发404

修复步骤

  • 确认控制器文件名为Pages.php,首字母大写,存放于application/controllers目录下
  • 统一控制器方法名与路径的大小写,推荐全部改为小写避免后续踩坑:
// 修改控制器中的方法名为全小写
public function getincontact()
{
    $this->load->view('pages/getincontact');
}
public function education()
{
    $this->load->view('pages/EDUCATION');
}
// 剩余INTERNSHIP、CERTIFICATES、PROJECTSANDACHIEVEMENTS方法均改为全小写命名
  • 同步修改intro页面导航链接的路径,和方法名保持一致:
<nav>
  <a href="<?php echo base_url(); ?>pages/getincontact">GET IN CONTACT</a>
  <a href="<?php echo base_url(); ?>pages/education">EDUCATION</a>
  <a href="<?php echo base_url(); ?>pages/internship">INTERNSHIP</a>
  <a href="<?php echo base_url(); ?>pages/certificates">CERTIFICATES</a>
  <a href="<?php echo base_url(); ?>pages/projectsandachievements">PROJECTS AND ACHIEVEMENTS</a>
</nav>

问题2:配置.htaccess后仍需携带index.php才可访问

修复步骤

  1. 修改CI配置文件application/config/config.php
    • 找到$config['index_page']配置项,修改为:
    $config['index_page'] = '';
    
    • 找到$config['uri_protocol']配置项,修改为:
    $config['uri_protocol'] = 'REQUEST_URI';
    
  2. 确认Apache重写配置生效
    • 打开Apache配置文件httpd.conf,搜索LoadModule rewrite_module modules/mod_rewrite.so,删除行首的#注释开启重写模块
    • 找到站点根目录对应的<Directory>配置块,将AllowOverride None修改为AllowOverride All,保存后重启Apache
  3. 调整.htaccess规则适配环境,部分环境不支持PATH_INFO模式,修改重写规则为:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]

内容的提问来源于stack exchange,提问作者asayl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 18:33:03