使用Laravel加载Bootstrap CSS出现403 Forbidden权限错误如何解决
Laravel引入Bootstrap CSS出现403禁止访问错误解决方案
报错信息
Forbidden You don't have permission to access this resource.Server unable to read htaccess file, denying access to be safe

原资源引入代码:
<link rel="stylesheet" id="bootstrap-css" href="{{ url('') }}/assets/css/bootstrap.css" type="text/css" media="all">
错误产生原因
- 站点目录或文件权限配置错误:服务器运行用户无权限读取根目录下的
.htaccess文件,或者assets/css/bootstrap.css文件、上级目录的权限设置过高,导致服务进程无法读取资源 - 文件所有者不匹配:站点文件的所有者和服务器运行用户(常见为www-data、apache、nginx)不一致,即使权限数值正确也会触发读取限制
- .htaccess规则异常:Laravel public目录下的.htaccess配置错误,误拦截了静态资源的访问请求
- 资源路径写法不规范:手动拼接根路径可能因为站点配置的根目录不一致,导致请求路径错误触发权限拦截
解决方案
- 修正目录与文件权限
进入Laravel项目根目录,执行以下命令(如果你的服务器运行用户不是www-data,对应替换即可):
# 所有目录设置为755权限 find . -type d -exec chmod 755 {} \; # 所有文件设置为644权限 find . -type f -exec chmod 644 {} \; # 修正文件所有者为服务器运行用户 chown -R www-data:www-data .
- 修正静态资源引入写法
使用Laravel官方提供的asset()助手函数生成静态资源路径,替换原有代码:
<link rel="stylesheet" id="bootstrap-css" href="{{ asset('assets/css/bootstrap.css') }}" type="text/css" media="all">
- 检查public目录下的.htaccess文件
确认配置为Laravel官方默认的规则,优先放行真实存在的静态资源请求,默认规则参考:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
内容的提问来源于stack exchange,提问作者zubair malik
相关产品推荐
相关产品推荐

