在 Apache 服务器上禁止网站列出文件目录(Directory Listing):
方法一:修改 .htaccess 文件(✅)
比如 WordPress 默认使用 .htaccess 管理伪静态,直接在此文件中添加指令最方便,无需服务器 root 权限。
- 连接服务器:使用 FTP 或文件管理器进入网站根目录。
- 编辑文件:找到并编辑 .htaccess 文件(若被隐藏,请开启“显示隐藏文件”)。
-
添加代码:在文件开头或 # BEGIN WordPress 之前,添加以下代码:
# 禁止目录列表 Options -Indexes
- 保存上传:保存文件并刷新网站。
- 验证:访问一个没有 index 文件的目录(如 yourdomain.com/wp-includes/),若显示 403 Forbidden 则成功。
💡 完整示例(防止被 WordPress 重置):
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
方法二:修改 Apache 主配置文件(需服务器权限)
如果你有服务器 root 权限,修改主配置文件性能更好,且不会被 WordPress 更新影响。
-
打开配置文件:
sudo nano /etc/apache2/apache2.conf # 或 sudo nano /etc/httpd/conf/httpd.conf
-
查找并修改:找到 <Directory> 段落,将 Indexes 改为 -Indexes:
Options -Indexes +FollowSymLinks AllowOverride All Require all granted
-
重启 Apache:
sudo systemctl restart apache2 # 或 sudo systemctl restart httpd
