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

部署在Azure App Service的Laravel 8 API部分路由Nginx 404问题

Laravel 8部署Azure App Service后部分API路由404的修复方案

检查Nginx的URL重写规则

本地正常但部署后部分路由404,核心原因通常是Nginx未正确将请求转发到Laravel的index.php:

  • 确保Nginx配置中包含完整的重写逻辑,覆盖所有路径(包括多级API路由):
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
  • 若单独配置了/api前缀的location块,需同步添加重写规则:
    location /api {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
  • 修改配置后,在Azure SSH控制台执行sudo service nginx restart重启服务生效。

验证路由定义与请求匹配

  • 登录Azure SSH控制台,执行php artisan route:list,核对/api/v1/doctors/hospitals和/api/v1/file/upload的URI、请求方法、控制器绑定是否完全正确,排查拼写或方法不匹配问题。
  • 确认实际请求的方法(如POST/GET)与路由定义一致,比如文件上传路由通常为POST,误用GET会直接返回404。

检查Azure虚拟应用程序配置

  • 若在Azure门户给App Service设置了虚拟应用程序,确保/api路径的物理路径指向Laravel项目的public目录,且勾选“应用程序”选项,保证请求被正确转发到Laravel入口。

清理路由缓存

  • 部署后可能存在路由缓存失效,执行以下命令重置:
    php artisan route:clear
    php artisan route:cache
    
  • 生产环境建议保持路由缓存,确保动态路由或分组路由在缓存前能正常解析。

修复文件上传相关权限(针对/file/upload路由)

  • 执行php artisan storage:link创建public/storage软链接,确保上传文件的存储路径可访问。
  • 设置目录权限,让Nginx进程拥有读写权限:
    chmod -R 755 storage/
    chown -R www-data:www-data storage/
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 04:42:07