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

在Heroku部署Laravel 8应用后除首页外API路由无法正常工作问题咨询

问题排查与解决步骤

1. 优先校验Procfile配置

  • Heroku运行Laravel需要将Web根目录指定到项目的public文件夹,正确的Procfile内容应为:
web: vendor/bin/heroku-php-apache2 public/
  • 若Procfile没有末尾的public/后缀,会导致Apache直接将项目根目录作为Web根,仅public/index.php能被重写规则命中,其余路由全部失效,修改后重新推送代码到Heroku即可生效。

2. 校验.htaccess配置是否完整

  • 确认public/.htaccess文件内容和Laravel官方默认配置一致,核心重写规则不能缺失,正确的重写块如下:
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
  • 若.htaccess缺失最后那段将非文件/目录请求转发到index.php的规则,也会出现非首页路由404的问题。

3. 其他异常排查项

  • 确认Heroku环境的APP_KEY已经正确配置,可运行heroku config:get APP_KEY查看,若缺失执行heroku config:set APP_KEY=$(php artisan key:generate --show)配置后重启dyno即可。
  • 确认路由缓存已经清除,部署时可在composer.json的post-install-cmd中加入php artisan route:clear命令,避免缓存的路由配置导致异常。
  • 可开启Heroku调试日志,运行heroku logs --tail查看请求时的具体报错信息,快速定位问题根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:51:04