禁止通过网址列出服务器目录文件列表(Apache)

其它 wes 22 days ago (2026-03-09) 15 views

在 Apache 服务器上禁止网站列出文件目录(Directory Listing):

方法一:修改 .htaccess 文件(✅)

比如 WordPress 默认使用 .htaccess 管理伪静态,直接在此文件中添加指令最方便,无需服务器 root 权限。

  1. 连接服务器:使用 FTP 或文件管理器进入网站根目录。
  2. 编辑文件:找到并编辑 .htaccess 文件(若被隐藏,请开启“显示隐藏文件”)。
  3. 添加代码:在文件开头或 # BEGIN WordPress 之前,添加以下代码:

    # 禁止目录列表 Options -Indexes
    
  4. 保存上传:保存文件并刷新网站。
  5. 验证:访问一个没有 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 更新影响。

  1. 打开配置文件

    sudo nano /etc/apache2/apache2.conf 
    # 或 
    sudo nano /etc/httpd/conf/httpd.conf
    
    
  2. 查找并修改:找到 <Directory> 段落,将 Indexes 改为 -Indexes:

    Options -Indexes +FollowSymLinks
    AllowOverride All
    Require all granted
    
  3. 重启 Apache

    sudo systemctl restart apache2 
    # 或 
    sudo systemctl restart httpd