Laravel开启HTTPS后除首页外其他路由返回白屏无报错问题求助
Laravel HTTPS非首页白屏问题排查方案
Nginx HTTPS站点配置错误
这是最高发的问题场景,多数用户配置HTTPS站点时仅复制了域名、证书相关配置,遗漏了Laravel必须的重写规则。请检查Nginx中HTTPS对应的server块,确认存在以下配置:# 确认root指向项目的public目录,而非项目根目录 root /your/project/path/public; location / { try_files $uri $uri/ /index.php?$query_string; }同时确认HTTPS块的fastcgi相关配置和HTTP块完全一致,没有额外添加open_basedir等目录访问限制,且关联的PHP-FPM运行用户对项目
storage、bootstrap/cache目录有读写权限。旧缓存未清理
HTTP环境下生成的路由、配置缓存会保留原协议相关的判断逻辑,切换HTTPS后未清理缓存会出现路由匹配异常。请在项目根目录执行以下命令清理所有缓存:php artisan route:clear php artisan config:clear php artisan cache:clear反向代理场景可信配置缺失
如果你的HTTPS能力由CDN、负载均衡、反向代理提供(比如使用Cloudflare、Nginx代理转发到后端服务),Laravel默认不会信任代理转发的HTTPS标识头,会将请求识别为HTTP协议触发异常。
注:你当前已注释所有中间件可暂时跳过该步骤,恢复中间件后可按以下逻辑配置:- Laravel 6+版本已内置可信代理中间件,低版本可执行
composer require fideloper/proxy安装 - 修改
app/Http/Middleware/TrustProxies.php中$proxies属性为代理服务器IP段或*,确认$headers属性包含X-Forwarded-Proto头 - 确认反向代理层已正确传递
X-Forwarded-Proto: https头到Laravel服务
- Laravel 6+版本已内置可信代理中间件,低版本可执行
Apache重写规则未生效
如果你使用Apache作为Web服务器,请检查HTTPS对应的VirtualHost配置中,项目public目录的AllowOverride参数设为All,确保.htaccess中的重写规则可以正常执行。
内容的提问来源于stack exchange,提问作者Devin Dixon
相关产品推荐
相关产品推荐

