Mediante el archivo htaccess, podemos configurar ciertos aspectos de nuestra web, sin tener que editar el archivo de configuración del servidor y siempre que la tengamos alojada en un servidor Apache.
El archivo htaccess afecta al directorio en el que se encuentra y a todos los subdirectorios de este, incluyendo otros archivos que haya en ellos. Por esta razón es recomendable guardarlo en la carpeta raíz de nuestro sitio web.
Para editarlo, solo necesitaremos un editor de texto, como por ejemplo, el Blog de Notas que incorpora Windows por defecto. Veamos, a continuación, algunos tipos de configuraciones que se pueden hacer en él:

Redirigir la URL sin “www” a la URL con “www”

Como todo el mundo sabe, al acceder a una web se puede hacer tanto por la versión con las 3W como la versión sin ellas. Aunque sabemos que es el mismo sitio web, puede quedar más estético si la URL que se muestra en la barra de direcciones es la misma. Para hacer este tipo de redirección, escribiremos el siguiente código en nuestro archivo htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^miweb.com [NC]
RewriteRule ^(.*)$ http://www.miweb.com/$1 [L,R=301]
Si quisiésemos hacerlo al revés, es decir, redirigir de la URL con “www” a la URL sin “www”, insertaremos este otro código:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.miweb.com [NC]
RewriteRule ^(.*)$ http://miweb.com/$1 [L,R=301]

Redirigir al protocolo HTTPS

Puede ocurrir que tengamos contratado un certificado SSL para nuestro sitio web, y que al acceder por la URL “http://miweb.com” no nos redireccione a “https://miweb.com”, ocasionando que aparezca el mensaje de “Sitio web no seguro” y pudiendo asustar a nuestros visitantes. Para evitar este tipo de situaciones, añadiremos, al comienzo del archivo htaccess, las siguientes líneas:
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Reescribir las reglas de enrutamiento (URL amigable)

Imaginemos una web en la que tenemos una página llamada “Contacto” y que para acceder a ella lo hacemos a través de la URL “http://miweb.com/contacto.html”. O peor aún, que la URL tenga el aspecto “http://miweb.com/ej27zd.html”. ¿No quedaría mejor una URL como “http://miweb.com/contacto”? Para ello, insertaremos el siguiente código en el archivo htaccess:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^contacto$ contacto.html [L]
Mencionar, que la última línea la podemos repetir tantas veces como deseemos con cada una de las URL’s que queramos hacer amigables.

Redirigir a una página en caso de error

Todos sabemos que una web no es algo estático, sino que tiene vida y está en constante transformación. Con ese proceso, se puede dar el caso de que eliminemos una página del sitio (por ejemplo, un servicio que dejemos de prestar). También puede ocurrir que el usuario que accede a una de las páginas de nuestra web introduzca mal la URL.
En cualquiera de los dos casos, el resultado es que el navegador nos devolvería un error 404, que hace referencia a una página no encontrada. Google penaliza aquellos sitios que tienen enlaces caídos, pero tranquilos, que para eso tenemos el siguiente código, el cuál permite redirigir a una página que creemos en nuestro sitio web si no se encuentra la solicitada:
ErrorDocument 404 /404.php
Cabe destacar que esta línea puede servirnos para cualquier error que devuelva la web, no solamente para el 404. Tan solo habría que sustituir la numeración de este por la del error en cuestión (403, 500,…).

Redirigir de una URL a otra

Además de lo mencionado en el caso anterior, nos podemos encontrar con una página que haya cambiado su URL. Como es lógico, si intentamos acceder a ella a través de la antigua URL, nos va a decir que la página no existe o no ha sido encontrada. Para solucionar este problema, tan solo tenemos que añadir a nuestro archivo htaccess la siguiente línea de código.
Redirect 301 /vieja-url http://miweb.com/nueva-url
Al igual que en otros ejemplos, esta línea la podemos repetir tantas veces como deseemos, aunque sí es cierto que repetirla un número elevado de veces puede ocasionar que Google nos penalice.

Habilitar compresión de archivos

Otro problema que nos podemos encontrar en nuestro sitio web y que podemos solucionar gracias al archivo htaccess es la compresión de archivos, consiguiendo así reducir su tamaño y hacer que la web cargue de forma más rápida.
AddOutputFilterByType DEFLATE tipo-de-archivo
Por ejemplo, para un archivo HTML, el código que tendríamos que añadir sería “AddOutputFilterByType DEFLATE text/html” (sin las comillas) y podríamos poner tantos como necesitásemos.

Habilitar el almacenamiento en caché

Y siguiendo con la mejora de la velocidad de carga de una web, nos vamos al almacenamiento en caché. Habilitando esta opción, los distintos archivos quedarán almacenados en nuestro ordenador, siempre y cuando no se borre la caché o cambie el diseño de la página, evitando así que tengan que ser descargados cada vez que se visita la web.
Para ello, bastará con agregar al archivo htaccess estás líneas:
ExpiresActive On
ExpiresByType tipo-de-archivo “access tiempo”
ExpiresDefault “access plus 1 month”
En el caso de los archivos PNG, por ejemplo, si queremos configurar que su tiempo en caché sea de un año, lo haremos de la siguiente forma:
ExpiresByType image/png “access 1 year”
Señalar que añadiremos una línea similar a esta por cada tipo de archivo, dejando la primera y la tercera de forma intacta.