Qué es y cómo configurar el archivo .htaccess

A la hora de crear una página web debemos tener en cuenta algunos aspectos fundamentales. Vamos a tener que familiarizarnos con algunos conceptos que formarán parte de nuestro día a día. Para que los servidores funcionen adecuadamente es necesario tener una configuración correcta. En este artículo vamos a hablar de qué es el archivo .htaccess y cómo podemos configurarlo.

Qué es el archivo .htaccess

En primer lugar vamos a explicar qué es el archivo .htaccess. Su nombre viene de HyperText Access o Acceso de Hipertexto. Se trata de un archivo que está presente en la configuración de un servidor Apache. Viene integrado en el popular software que actúa como servidor web para servir páginas web. Este archivo contiene las directivas que pueden definir cómo se comporta un servidor Apache. Sirve para limitar las acciones de un visitante que entra en ese sitio web. Permite configurarlo para indicar en todo momento qué puede y qué no. También podemos configurarlo para responder ante posibles errores que pueda haber con la conexión y lograr optimizar la carga de páginas de esa web.

Como vemos, es un archivo que puede ser clave para el correcto funcionamiento. Puede afectar al directorio donde esté colocado, así como los subdirectorios que pudiera haber. Únicamente va a actuar sobre ellos, por lo que lo interesante en este caso es colocarlo en el directorio principal de nuestra página web. Por tanto, podemos decir que un archivo .htaccess es el nombre que recibe el archivo que vamos a utilizar para la configuración de directorios en un servidor Apache. Nos permite personalizar la configuración de directivas y los diferentes parámetros definidos en él.

Vulnerabilidad en el escritorio remoto de Apache

Para qué sirve el archivo .htaccess

Hemos mencionado que el archivo .htaccess va a permitir que configuremos los directorios de un servidor Apache. Vamos a poder llevar a cabo algunas acciones de una manera sencilla y que se aplicarán en dicho directorio donde lo tengamos puesto. Vamos a ver algunos puntos a tener en cuenta.

  • Control de acceso al sitio web: esta característica nos permite controlar a qué página web y directorios podemos acceder de una determinada página web. Si queremos bloquear el acceso a varias webs, este es el archivo que debes usar.
  • Redirigir subdominios a subcarpetas: si tenemos varios subdominios, y queremos que algunos de esos subdominios «apunten» a diferentes subcarpetas, este archivo es el encargado de ello.
  • Redirigir mediante 301 o 302 (por ejemplo para entrar sin WWW). La redirección 301 es ampliamente conocida, nos permite redirigir de forma definitiva de un enlace a otro, con el objetivo de que el primero no esté disponible y todas las peticiones se realicen al segundo de los enlaces que hemos puesto.
  • Proteger el acceso a las carpetas: htaccess es muy importante para proteger y controlar el acceso a determinadas carpetas o directorios de la página web.
  • Redireccionar a una conexión segura HTTPS: esta funcionalidad hoy en día es muy importante, si nosotros accedemos a una web usando HTTP, automáticamente el sitio web reenviará esta solicitud a la versión con HTTPS de una página web. Aunque una página web solamente funcione con HTTPS, es necesario que tenga una redirección desde HTTP a HTTPS porque los navegadores web primero intentarán la conexión vía HTTP.
  • Habilitar la protección de enlaces directos en la página web.
  • Bloquear determinadas direcciones IP: en este archivo de configuración podremos configurar una lista de control de acceso, para permitir o denegar diferentes direcciones IP de origen a nuestra página web.
  • Cambiar la zona horaria de nuestra página web
  • Evitar bots, esto se hace bloqueando el acceso de este tipo de tráfico a nuestra web.

Por ejemplo, si quisiéramos proteger el acceso a las carpetas tendríamos que agregar lo siguiente al archivo .htaccess:

#Evitar el acceso a las carpetas
deny from all

Para proteger el propio archivo .htaccess sería:

#Evitar el acceso al archivo .htaccess
<files .htaccess>
order allow,deny
deny from all
</files>

En el caso de querer bloquear usuarios o bots:

#Bloquear el acceso a determinadas direcciones IP
Order deny, allow
Allow from All
Deny from XXX.XXX.XXX.XXX
Deny from XXX.XXX.XXX.XXX

Como vemos, para poner un comentario simplemente tenemos que escribir # seguido de lo que queramos agregar, de esta forma estaremos ayudando al administrador de sistemas a saber qué es lo que hace ese trozo de código. En un entorno donde tengamos un archivo htaccess muy completo, con decenas de líneas, es muy importante escribir ciertos comentarios con el objetivo de no tener problemas a la hora de "entender" qué es lo que estamos haciendo.

Estos son algunos cambios y configuraciones que podemos realizar a través de un archivo .htaccess. Son simplemente algunos que hemos mencionado, pero en realidad el abanico de posibilidades es muy amplio gracias a este archivo que podemos incluir en los directorios de servidores Apache.

Cómo crear un archivo .htaccess

Crear un archivo .htaccess es muy sencillo. Vamos a tener que utilizar cualquier editor de texto o bloc de notas. Tenemos que crearlo como .txt. Hay que tener en cuenta que puede que en nuestro servidor Apache ya tengamos un archivo de este tipo, por lo que simplemente debemos modificarlo y añadir o quitar lo que nos interese.

Si no tenemos ningún archivo .htaccess en el directorio donde nos interesa, simplemente tenemos que crear uno. Como hemos mencionado, no necesitamos ningún programa especial. Solo tenemos que escribir en él los diferentes parámetros que nos interesan y guardarlo con el nombre .htaccess. No debe tener ningún tipo de extensión.

Ese archivo que hemos creado lo tenemos que subir al directorio que nos interesa en el servidor Apache. Hemos indicado que afectará también a todos los subdirectorios que haya presentes donde lo hemos puesto. De ahí que si queremos que aplique a todos ellos tendremos que ponerlo en el directorio principal.

Si tenemos algún archivo .htaccess ya en nuestro servidor, podemos descargarlo y así guardarlo como copia de seguridad en caso de tener algún problema. Una vez hayamos subido el nuevo, también podremos configurarlo a partir de ese momento desde allí, sin necesidad de tener que descargarlo.

Hay que indicar que Apache aplica las directivas por orden según las encuentra. Esto quiere decir que un archivo en un directorio va a sobrescribir otro posible archivo que tuviéramos en un subdirectorio.

¡Sé el primero en comentar!