Deshabilitar el listado de directorios web de Apache mediante el archivo .htaccess


Asegurar su servidor web apache es una de las tareas más importantes, especialmente cuando configura un nuevo sitio web.

Por ejemplo, si crea un nuevo directorio de sitios web llamado "tecmint" en su servidor Apache (/ var/www/tecmint o/var/www/html/tecmint) y olvidó colocar un archivo "index.html" en él, Puede que le sorprenda saber que todos los visitantes de su sitio web pueden obtener una lista completa de todos sus archivos y carpetas importantes simplemente escribiendo http://www.example.com/tecmint en el navegador.

En este artículo, le mostraremos cómo deshabilitar o evitar la lista de directorios de su servidor web Apache usando el archivo .htaccess.

Así es como la lista de directorios se mostrará a sus visitantes cuando index.html no esté presente en ella.

Para empezar, .htaccess (o acceso de hipertexto) es un archivo que permite al propietario de un sitio web controlar las variables de entorno del servidor, así como otras opciones vitales para mejorar la funcionalidad de sus sitios web.

Para obtener información adicional sobre este archivo importante, lea los siguientes artículos para proteger su servidor web Apache usando el método .htaccess:

  1. 25 trucos de Apache Htaccess para proteger el servidor web Apache
  2. Proteja con contraseña los directorios web de Apache mediante el archivo .htaccess

Con este método simple, el archivo .htaccess se crea en cualquiera y/o todos los directorios del árbol de directorios del sitio web y proporciona características al directorio superior, subdirectorios y archivos dentro de ellos.

En primer lugar, active el archivo .htaccess para su sitio web en el archivo de configuración maestro de apache.

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

Luego busque la sección a continuación, donde el valor de la directiva AllowOverride debe establecerse en AllowOverride All .

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

Sin embargo, si tiene un archivo .htaccess existente, haga una copia de seguridad de él de la siguiente manera; asumiendo que lo tiene en/var/www/html/tecmint/(y desea deshabilitar la lista de este directorio):

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

Luego puede abrirlo (o crearlo) en el directorio particular para modificarlo usando su editor favorito, y agregar la línea a continuación para desactivar la lista de directorios de Apache:

Options -Indexes 

A continuación, reinicie el servidor web Apache:

-------- 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

Ahora verifique el resultado escribiendo http://www.example.com/tecmint en el navegador, debería recibir un mensaje similar al siguiente.

¡Eso es todo! En este artículo, describimos cómo deshabilitar la lista de directorios en el servidor web Apache usando el archivo .htaccess. También cubriremos otros dos métodos útiles y fáciles para el mismo propósito en los próximos artículos, hasta entonces, manténgase conectado.

Como de costumbre, utilice el formulario de comentarios a continuación para enviarnos sus opiniones sobre este tutorial.