Deshabilitar el listado del directorio web de Apache usando 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 web llamado " tecmint " bajo su servidor Apache (/var/www/tecmint o /var/www/html/tecmint ) y se olvidó de colocar un archivo " index.html " en él, le sorprenderá 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 prevenir la lista de directorios de su servidor web Apache utilizando el archivo .htaccess .

Así es como se mostrará la lista de directorios 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 su/su sitio web (s).

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

  1. 25 Apache Htaccess Tricks to Secure Apache Web Server
  2. Password Protect Apache Web Directories Using .htaccess File

Usando este método simple, el archivo .htaccess se crea en todos y cada uno de los directorios del árbol de directorios del sitio web y proporciona funciones para el directorio superior, los subdirectorios y los archivos dentro de ellos.

En primer lugar, active el archivo .htaccess para su sitio web en el archivo de configuración principal 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 se debe establecer en AllowOverride All .

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

Sin embargo, si tiene un archivo .htaccess , haga una copia de seguridad 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 con su editor favorito, y agregar la línea a continuación para desactivar el listado 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énganse conectados.

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