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

Laravel子域名路由在生产环境出现404错误求助

Laravel子域名路由生产环境404问题排查

问题场景

我有一个基于Docker部署、运行在Nginx上的Laravel应用,项目API路由配置如下:

Route::group(['prefix' => 'V0', 'domain' => '{subdomain}.' . config()->get('app.url'), 'middleware' => ['servicewebauth']], function () {
   Route::get('test-route/{param}', 'AppController@testRoute');
    Route::get('test', function() {
        return 'This is a test';
    });
});

对应的Nginx配置文件:

server {
    listen 80;
    index index.php index.html;
    server_name _;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /app/public;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass localhost:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

本地Docker环境下所有路由均可正常访问,但生产环境(包括单独构建的生产镜像)中,带{subdomain}子域名的路由均返回404错误;移除路由组中的domain配置后,路由恢复正常。请问该问题的原因可能是什么?

可能的原因及排查方向

  • Laravel配置缓存不匹配:生产环境通常会执行php artisan config:cache生成配置缓存,如果缓存生成时APP_URL环境变量和实际生产域名不一致,路由组里拼接的{subdomain}.+app.url就会生成错误的域名规则,导致路由匹配失败。解决时要先确保APP_URL设置正确,再重新执行php artisan config:cache和php artisan route:cache更新缓存。
  • Nginx未正确传递Host头:Laravel的子域名路由匹配依赖请求的Host头,如果Nginx没有把客户端真实的Host头传递给PHP-FPM,Laravel拿到的Host值不对,就匹配不上子域名规则。检查Nginx配置中,fastcgi_params是否包含fastcgi_param HTTP_HOST $host;,如果是通过反向代理访问,还要确保代理层(如负载均衡、CDN)传递了正确的Host头,同时Nginx的代理配置里要加proxy_set_header Host $host;。
  • 生产环境域名解析/SSL配置问题:如果生产环境启用了HTTPS,但Laravel的app.url还是HTTP协议,或者子域名未配置通配符DNS解析(比如*.yourdomain.com指向服务器),会导致请求的Host和路由规则不匹配。另外如果Nginx配置了HTTPS的server块,要确保该块的配置和HTTP块一致,包括PHP处理逻辑和Host头传递。
  • 子域名DNS未正确解析:本地环境可能通过修改hosts文件实现了子域名解析,但生产环境的DNS服务器如果没有配置子域名通配符解析,子域名请求根本无法到达服务器,自然返回404。可以通过nslookup或dig命令验证生产环境子域名的解析情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:03:33