EasyAdmin生产环境重定向异常问题求助
问题解决:EasyAdmin生产环境重定向到Docker内部地址
问题原因
生产环境下Docker容器内部的Symfony未正确获取外部访问的域名信息,导致路由生成时使用容器内部的localhost:9000作为主机地址,而非你的domain.com。本地开发时请求直接指向Symfony服务器,因此不会出现该问题。
解决步骤
1. 设置APP_URL环境变量
在生产环境的.env文件(或Docker容器的环境变量配置中)添加:
APP_URL=https://domain.com
Symfony会优先使用这个值生成绝对URL,覆盖容器内部的主机信息。
2. 配置反向代理信任(若使用Nginx等反向代理)
如果VPS通过反向代理(如Nginx)将请求转发到Docker容器,需让Symfony信任该代理,确保框架能正确读取外部请求的Host头。
修改config/packages/framework.yaml:
framework: trusted_proxies: '%env(TRUSTED_PROXIES)%' trusted_hosts: '%env(TRUSTED_HOSTS)%'
再在.env中补充配置:
TRUSTED_PROXIES=0.0.0.0/0 # 或填写反向代理的具体IP TRUSTED_HOSTS=domain.com
3. 清除生产环境缓存
修改配置后必须清除缓存,执行命令:
php bin/console cache:clear --env=prod
如果是Docker部署,需进入容器内部执行该命令。
验证
重启容器或应用后,再次点击EasyAdmin菜单,跳转地址应变为domain.com开头的正确路径。
你的菜单代码MenuItem::linkToCrud('Equipement', 'fas fa-list', Equipement::class);本身无问题,根源在于Symfony的环境配置,只要让框架正确感知外部访问地址,路由生成即可恢复正常。
内容的提问来源于stack exchange,提问作者Camel4488
相关产品推荐
相关产品推荐

