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

Laravel应用(Web+API)出现随机301重定向循环问题求助

301重定向循环问题排查思路

1. 校验Laravel核心配置与反向代理信任

  • 检查.env中APP_URL是否为正确域名(无末尾斜杠),APP_ENV设为生产环境
  • 确保Laravel信任Cloudflare代理IP:在config/trustedproxy.php添加Cloudflare全量IP段,或在Forge的Nginx配置中启用realip模块,避免Laravel因获取代理IP生成错误重定向URL
  • 核对config/nova.php里的domain配置,必须与APP_URL完全匹配

2. 排查Cloudflare重定向与缓存规则

  • 检查Cloudflare页面规则,删除或修正误设置的强制重定向规则(比如HTTPS跳转配置冲突)
  • 确认SSL/TLS模式为「严格」或「灵活」,避免证书不匹配引发隐性重定向
  • 关闭Cloudflare「自动HTTPS重定向」功能,在Forge的Nginx配置中手动添加HTTPS强制跳转:
    return 301 https://$host$request_uri;
    
    避免Cloudflare与服务器双重重定向冲突
  • 调整Cloudflare缓存规则优先级,将全应用缓存绕过规则设为最高优先级,确保生效

3. 处理客户端重定向缓存

  • 针对问题路由、Nova后台及API接口,在Laravel响应头中添加:
    return response()->header('Cache-Control', 'no-store, no-cache, must-revalidate');
    
    禁止客户端缓存错误的301响应
  • 告知前端在fetch或Dart客户端请求中添加cache: 'no-store'参数,避免客户端复用缓存的重定向记录

4. 检查Nginx配置细节

  • 在Forge中查看站点Nginx配置,删除重复或错误的return 301/rewrite规则
  • 确认server_name与域名完全匹配,避免因域名匹配错误触发重定向
  • 查看Nginx访问日志,过滤301请求,分析X-Forwarded-Proto、X-Forwarded-For等请求头,定位重定向发起方(Nginx或Laravel)

5. 校验Laravel与Nova路由逻辑

  • 执行php artisan route:list,排查重复路由或配置错误的redirect路由
  • 禁用自定义中间件(尤其是缓存、重定向类),逐个排查是否为中间件导致的异常重定向
  • 检查Nova路由是否被全局中间件篡改,导致不必要的跳转

6. 绕开Cloudflare直接测试

  • 修改本地hosts文件,将域名指向EC2公网IP,直接访问服务器:
    • 若直接访问正常,问题集中在Cloudflare配置或代理逻辑
    • 若直接访问仍出现循环,锁定为服务器端(Laravel/Nginx)问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:55:02