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

MAMP虚拟主机部署CodeIgniter项目遇404错误求助

解决CodeIgniter虚拟主机访问404错误的问题

你已经把基础的虚拟主机配置步骤都走完了,但还是遇到了404,我来帮你排查几个容易忽略的关键点:

1. 确认DocumentRoot指向正确的目录

如果你的CodeIgniter是4.x版本,项目根目录下有个public文件夹,这才是Web服务器应该指向的入口目录(因为index.php在这里)。你当前的DocumentRoot设为项目根目录,会导致服务器找不到入口文件,自然返回404。修改httpd-vhosts.conf的配置:

<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/my-project/public"
    ServerName my-project.local
    # 添加Directory配置确保权限正确
    <Directory "/Applications/MAMP/htdocs/my-project/public">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

如果是CodeIgniter 3.x,index.php在项目根目录,那DocumentRoot没问题,但同样需要在VirtualHost里添加对应的Directory配置,确保服务器有权访问该目录。

2. 检查.htaccess文件的正确性

不同版本的CI,.htaccess规则不一样:

  • CI4的public目录下的.htaccess(如果没有就创建):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
  • CI3的根目录下的.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

另外要确认httpd.conf里已启用rewrite模块,检查LoadModule rewrite_module modules/mod_rewrite.so这一行是否取消了注释。

3. 验证端口与hosts配置是否生效

  • 打开终端输入ping my-project.local,如果返回IP是127.0.0.1,说明hosts配置生效;如果不是,检查hosts文件的拼写和格式,确保没有多余空格。
  • 检查MAMP端口:打开MAMP偏好设置确认Apache端口为80,重启后在终端输入lsof -i :80,查看是否有httpd进程占用端口。如果没有,可能是macOS自带的Apache占用了80端口,先执行sudo apachectl stop停止自带服务,再重启MAMP。

4. 同步CodeIgniter配置文件

打开CI的配置文件:

  • CI4:app/Config/App.php,设置baseURL为http://my-project.local/
  • CI3:application/config/config.php,设置$config['base_url']为http://my-project.local/

完成以上步骤后重启MAMP的Apache服务,再访问my-project.local应该就能正常加载了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:24:22