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

部署CodeIgniter项目遇404错误,本地运行正常求排查方案

解决CodeIgniter部署后404 Page Not Found问题

刚部署CodeIgniter碰到404确实挺头疼的,结合你描述的情况,我帮你梳理几个最容易遗漏的配置点,你挨个排查下:

  • 确认Apache的Rewrite模块已开启
    很多线上服务器默认没开启mod_rewrite模块,这会导致你的.htaccess规则完全失效。

    • 如果你用的是Ubuntu/Debian系统,执行命令开启:
      sudo a2enmod rewrite
      
    • 然后重启Apache服务:
      sudo systemctl restart apache2
      
    • 如果你用的是CentOS/RHEL,需要编辑/etc/httpd/conf/httpd.conf,找到LoadModule rewrite_module modules/mod_rewrite.so这一行,去掉前面的注释符号#,然后重启httpd:sudo systemctl restart httpd
  • 检查CodeIgniter的index_page配置
    本地环境可能保留了index.php在URL里,但线上要配合.htaccess去掉它,所以需要修改application/config/config.php:

    // 把原来可能存在的'index.php'改成空字符串
    $config['index_page'] = '';
    
  • 确保.htaccess的位置和Apache的AllowOverride设置正确

    1. .htaccess文件必须放在项目的根目录(也就是和index.php、application文件夹同层级的位置),不能放到application或者system目录里。
    2. 关键!要修改Apache的配置,让服务器允许读取.htaccess的规则。找到你的虚拟主机配置文件(比如/etc/apache2/sites-available/myweb.conf)或者httpd.conf里的对应目录块,把AllowOverride改成All:
      <Directory /var/www/html/myweb>
          AllowOverride All
          Require all granted
      </Directory>
      
      修改后记得重启Apache服务,否则配置不会生效。
  • 修正base_url的小细节
    你原来的旧配置里base_url值前面有个空格,新配置要确保没有多余空格,最好在结尾加上斜杠,避免路径拼接出问题:

    $config['base_url'] = 'http://myweb.com/';
    
  • 检查文件完整性和权限
    确认你已经把本地的所有文件完整上传到服务器,特别是根目录的index.php文件存在且权限正确(一般设置为644,文件夹设置为755,确保服务器的www-data用户能读取文件)。

排查完这些点,应该就能解决404的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:46:58