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

Azure部署Symfony应用路由异常:仅根路径可访问其他路径404

Azure部署Symfony应用的404路由问题解决

问题

Azure上部署的Symfony应用仅根路径/可正常访问,其余所有路径均返回404错误,但本地环境运行完全正常。

相关截图

排查与解决步骤

1. 修复Nginx URL重写配置

问题核心是Nginx未将非根路径请求转发给Symfony的public/index.php前端控制器。需修改Nginx配置,添加正确的路由转发规则:

server {
    listen 80;
    root /home/site/wwwroot/public; # 必须指向Symfony项目的public目录
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php$is_args$args; # 核心规则:不存在的路径转交给Symfony处理
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; # 根据实际PHP版本调整路径
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
  • 确保root指向项目的public文件夹,这是Symfony的Web入口目录
  • try_files规则是关键,确保所有路由请求都能被Symfony的路由系统处理

2. 检查Azure应用服务配置

  • 确认Azure应用服务的虚拟应用程序设置中,根路径(/)指向site\wwwroot\public
  • 若使用自定义启动命令,需确保Nginx配置文件被正确加载(例如启动脚本中包含nginx -c /path/to/your/config.conf)

3. 验证Symfony路由与缓存

  • 部署时执行php bin/console cache:clear --env=prod,清除并生成生产环境缓存
  • 运行php bin/console debug:router确认所有路由已正确注册,无拼写或配置错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:27:26