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

Heroku部署PHP MVC项目仅首页可访问,其他路由报404求助

解决Heroku部署PHP MVC项目路由404问题

问题根源

Heroku上的Apache服务器默认会直接寻找请求路径对应的文件(比如/about会查找public/about文件),不会自动将所有请求转发到你的入口文件public/index.php,这就导致除首页外的所有路由触发404错误。

解决方案步骤

1. 确认项目结构与Procfile配置

你的路由逻辑所在的入口文件(比如index.php)必须放在public/目录下,同时Procfile要明确指定public/作为服务器的文档根目录:

web: heroku-php-apache2 public/

2. 添加public/.htaccess重写规则

在public目录下创建.htaccess文件,写入以下URL重写规则,让所有非真实文件/目录的请求都转发到入口文件:

RewriteEngine On
# 排除实际存在的文件
RewriteCond %{REQUEST_FILENAME} !-f
# 排除实际存在的目录
RewriteCond %{REQUEST_FILENAME} !-d
# 将所有请求转发到index.php处理
RewriteRule ^ index.php [L]

3. 提交代码并重新部署

将.htaccess文件加入Git仓库,重新推送到Heroku完成部署:

git add public/.htaccess
git commit -m "Add URL rewrite config for Heroku"
git push heroku main

验证

部署完成后,尝试访问/about、/contacts等路由,此时请求会被正确转发到index.php,你的路由逻辑就能正常处理对应页面了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:05:30