网站搜索

使用 .htaccess 文件禁用 Apache Web 目录列表


保护您的 apache Web 服务器是最重要的任务之一,特别是当您设置新网站时。

例如,如果您在 Apache 服务器下创建一个名为“howtoing”的新网站目录(/var/www/howtoing/var/www/html/ howtoing)并且忘记在其中放置“index.html”文件,您可能会惊讶地发现所有网站访问者都可以轻松获得所有重要文件和文件夹的完整列表在浏览器中输入http://www.example.com/howtoing

在本文中,我们将向您展示如何使用 .htaccess 文件禁用或阻止 Apache Web 服务器的目录列表。

这是当目录列表中不存在 index.html 时向访问者显示的方式。

对于初学者来说,.htaccess(或超文本访问)是一个文件,使网站所有者能够控制服务器环境变量以及其他重要选项,以增强其/她的网站。

有关此重要文件的其他信息,请阅读以下文章,以使用 .htaccess 方法保护您的 Apache Web 服务器:

  1. 保护 Apache Web 服务器安全的 25 个 Apache Htaccess 技巧
  2. 使用 .htaccess 文件密码保护 Apache Web 目录

使用这种简单的方法,可以在网站目录树中的任何和/或每个目录中创建 .htaccess 文件,并为其中的顶级目录、子目录和文件提供功能。

首先,在 apache 主配置文件中激活您网站的 .htaccess 文件。

sudo vi /etc/apache2/apache2.conf    #On Debian/Ubuntu systems
sudo vi /etc/httpd/conf/httpd.conf   #On RHEL/CentOS systems

然后查找下面的部分,其中 AllowOverride 指令的值必须设置为 AllowOverride All

<Directory /var/www/html/>
       Options Indexes FollowSymLinks
       AllowOverride All
</Directory>

但是,如果您有现有的 .htaccess 文件,请按如下方式对其进行备份;假设您将其放在 /var/www/html/howtoing/ 中(并且想要禁用该目录的列表):

sudo cp /var/www/html/tecmint/.htaccess /var/www/html/tecmint/.htaccess.orig  

然后,您可以使用您喜欢的编辑器在特定目录中打开(或创建)它进行修改,并添加以下行以关闭 Apache 目录列表:

Options -Indexes 

接下来重新启动 Apache Web 服务器:

-------- On SystemD based systems -------- 
sudo systemctl restart apache2
sudo systemctl restart httpd

-------- On SysVInit based systems -------- 
sudo /etc/init.d/apache2 restart 
sudo /etc/init.d/httpd restart

现在,通过在浏览器中输入 http://www.example.com/howtoing 来验证结果,您应该会收到类似于以下内容的消息。

就这样!在本文中,我们描述了如何使用 .htaccess 文件禁用 Apache Web 服务器中的目录列表。我们还将在接下来的文章中介绍用于相同目的的另外两种有用且简单的方法,在此之前,请保持联系。

与往常一样,请使用下面的反馈表向我们发送您对本教程的想法。