403禁止访问?三分钟解决目录列表禁用报错
头一回在浏览器当中瞅见“403 Forbidden – Directory Listing Denied”状况的好些人, 会觉着网站遭黑客攻击了。实际上这仅仅是服务器一侧的默认安全设定, 其意图在于避免访客径直浏览网站文件夹里头的全部文件。
然而要是你正处于搭建网站的进程中, 或者在上传资源的操作里, 亦或是处于调试环境的工作状态下, 这样的提示着实会让人感到厌烦。接下来直接给出解决的思路以及可用的代码, 依据场景去进行对号入座。
为什么会出现这个提示?
当用户去访问一个不存在默认首页比如未写 index.html 或 index.php 值的这样一个 directory, 之时, Nginx 或者 Apache 会因为安全原因考量拒绝展示文件列表, 返回 403 的状态码。这并非是错误, 而是一种保护机制。
场景一:你希望允许用户查看目录文件列表(不推荐生产环境)
如果你是搭建资源下载站或内部工具,可以临时放开限制。
Nginx 环境
将站点配置文件予以打开, 此文件一般处于 /etc/nginx/conf.d/ 或者 /etc/nginx/sites-available/ 这个位置范畴内, 于 server 块或者 location 块里增添如下内容:
location / {
autoindex on;
}然后重启 Nginx:
sudo systemctl restart nginx
Apache 环境
去将那个.htaccess文件给打开, 或者着对虚拟主机配置弄一弄, 然后放上这么一句:
Options +Indexes
重启 Apache:
sudo systemctl restart httpd
场景二:你希望去掉 403,但也不需要文件列表
绝大多数正常的网站, 仅需一个默认首页, 于该特定目录之下, 去创建一个 index.html 或者 index.php 文件就行, 其内容可随意设置, 举例来说:
站点首页欢迎访问
浏览器会直接加载这个页面,不再触发目录列表检测。
场景三:Nginx 配置正确但仍然报 403
常见原因是目录权限不足。执行:
chmod 755 /你的网站目录 chown -R www-data:www-data /你的网站目录
要让 Nginx 可以正常去访问文件, 就得保证 Web 用户(通常是 www-data 或者 nobody)拥有读取权限。
一句话总结
需要文件列表 → 开 autoindex
不需要列表 → 放 index.html
配置正确还报错 → 检查目录权限
否玩代码编辑 https://www.fouwan.com


