CodeIgniter3项目上传assets文件夹后遇Directory Access Forbidden问题求助
排查CodeIgniter3中assets目录「Directory Access Forbidden」错误
错误原因
- 主目录下的
.htaccess重写规则未将assets目录加入允许直接访问的资源列表,导致访问assets下资源或目录时,请求被规则导向index.php,结合服务器默认禁止目录索引的设置,触发权限错误。 assets目录及内部文件的服务器权限不正确(如目录权限低于755、文件权限低于644),也会导致访问被禁止。
解决方法
1. 修改主目录的.htaccess文件
找到主目录下的.htaccess,将assets添加到允许直接访问的资源列表中:
DirectoryIndex index.php RewriteEngine on # 新增assets到允许访问的列表 RewriteCond $1 !^(index\.php|assets|(.*)\.swf|fonts|images|css|less|js|robots\.txt|favicon\.ico) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]
2. 修正assets目录及文件权限
通过服务器控制面板或SSH命令调整权限:
- 设置目录权限:
chmod 755 assets/ - 递归设置内部文件权限:
chmod 644 assets/**/*
3. (可选)禁止assets目录浏览(推荐)
若无需开放目录结构浏览,可在assets目录下新建.htaccess文件,添加以下规则:
Options -Indexes <IfModule authz_core_module> Require all granted </IfModule> <IfModule !authz_core_module> Allow from all </IfModule>
该规则既允许访问目录内静态资源,又禁止直接浏览目录列表,提升安全性。
内容的提问来源于stack exchange,提问作者mohini
相关产品推荐
相关产品推荐

