解决全新Laravel 11安装中的403 Forbidden错误
CentOS+Aapanel+Nginx环境下Laravel 11 403 Forbidden错误解决方法
核心问题说明
你用的是Nginx服务器,.htaccess是Apache专属配置文件,修改它对Nginx完全无效,得从Nginx配置和Laravel部署规范入手解决。
具体修复步骤
修正Nginx URL重写规则
替换你当前的location /配置为以下内容:location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/www.sock; # 可根据你的PHP版本调整路径,Aapanel默认一般为该路径 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }原配置里的
index.html会优先匹配静态文件,导致Laravel无法接管请求,且缺少?$query_string会丢失请求参数,修正后才能让Nginx正确将请求转发给Laravel处理。检查Laravel目录权限
执行以下命令确保目录权限正确(替换/path/to/laravel-project为你的项目实际路径):chown -R www:www /path/to/laravel-project chmod -R 755 /path/to/laravel-project/storage chmod -R 755 /path/to/laravel-project/bootstrap/cacheAapanel的Nginx/php-fpm默认运行用户是
www,必须让项目目录归该用户所有,否则Laravel无法写入日志和缓存文件,会触发403或500错误。确认站点根目录配置
在Aapanel的站点管理中,将Laravel站点根目录设置为项目的public文件夹(比如/www/wwwroot/laravel-project/public),而非项目根目录。这是Laravel部署的强制规范,直接指向项目根目录会导致Nginx无法正确解析入口文件,同时暴露敏感配置文件。重启Nginx服务
修改配置后,在Aapanel面板的「软件商店」-「已安装」中找到Nginx点击「重启」;或执行命令:systemctl restart nginx
内容的提问来源于stack exchange,提问作者Mewaram kansodiya
相关产品推荐
相关产品推荐

