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
相关产品推荐
相关产品推荐

