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.
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
order allow,deny
deny from all
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.
Opciones para .htaccess
Estos archivos nos permiten realizar gran cantidad de tareas sencillas, en lo referente a las configuraciones de los servidores Apache. Y una de las principales es realizar una redirección del tráfico que entra, a determinadas carpetas, entre otras muchas cosas.
Una de las posibilidades que obtenemos, es utilizar dominios sin el www. Y esto es mediante un redireccionamiento 301. Pero para que los buscadores no lleguen a confundirse, se debe elegir entre las dos opciones. O con www o sin él. Ya que, si cambiamos mucho entre ambos modos, el SEO de nuestro sitio se puede ver gravemente dañado. Por lo cual lo recomendable es evitar mezclarlos con frecuencia, a no ser que no nos quede más alternativa por algún motivo. Por otro lado, también podremos realizar cambios de dominio de las páginas web, y sin que esto pueda llegar a suponer un problema a la hora de recoger el tráfico. Este se recoge del anterior dominio, y se redirige de forma automática al nuevo.
También se pueden realizar cambios en la propia página, sin referirnos a la dirección. Sin ir más lejos, la página de inicio se puede cambiar con htaccess. Y puede ser prácticamente cualquiera, como puede ser un lugar donde queremos mostrar nuestra marca personal, sin que sea nuestra propia página. Otra cosa que podemos modificar, son los mensajes de error, como pueden ser los 404 que indican que la página no existe o no está disponible. Esto hace que el mensaje se pueda ver diferente, como puede ser con alguna imagen.
Como puedes ver, con htaccess las opciones no se quedan cortas. Tampoco en seguridad, donde podremos establecer algunos parámetros de protección. Lo cual no solo nos beneficia a nosotros, si no a los usuarios de la página web. Y eso, beneficia directamente en las estadísticas que podemos sacar de ellas.
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.