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

Azure Web App部署Laravel+Vue SPA遇403禁止访问问题求助

解决Azure Web App部署Laravel+Vue SPA出现403 Forbidden错误
  • 检查Web根目录指向
    Azure Web App默认将/home/site/wwwroot作为Web根目录。如果Laravel项目根目录就是wwwroot,需确保Azure的Web根直接指向/home/site/wwwroot/public。可通过Azure门户的「配置」→「路径映射」→「虚拟应用程序和目录」,添加虚拟路径/,物理路径设置为site\wwwroot\public(Linux环境对应/home/site/wwwroot/public)。

  • 移除无效的.htaccess配置
    Azure Linux环境使用Nginx服务器,根目录下的Apache格式.htaccess文件不会生效,直接删除该文件即可,所有路由规则通过Nginx配置处理。

  • 修正Nginx配置
    确保Nginx配置文件(通常位于/etc/nginx/sites-available/default)正确配置:

    • 确认root指向/home/site/wwwroot/public
    • location /块的try_files规则确保所有请求转发到index.php
    • 将server_name替换为你的Azure Web App域名(如yourappname.azurewebsites.net)

    核心配置示例:

    server {
        listen 8080;
        listen [::]:8080;
        root /home/site/wwwroot/public;
        index index.php index.html index.htm;
        server_name yourappname.azurewebsites.net;
    
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
    
        # 其余规则保持原有配置不变
    }
    

    修改完成后重启Nginx服务:sudo service nginx restart

  • 修复文件权限
    Laravel需要storage和bootstrap/cache目录具备可写权限,执行以下命令:

    cd /home/site/wwwroot
    sudo chmod -R 755 storage bootstrap/cache
    sudo chown -R www-data:www-data storage bootstrap/cache
    
  • 验证Sanctum配置
    针对SPA应用,确保.env中的STATEFUL_DOMAINS包含你的Azure域名:

    STATEFUL_DOMAINS=yourappname.azurewebsites.net
    

    同时确认SANCTUM_STATEFUL_DOMAINS和SESSION_DOMAIN配置与域名匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:23:24