Redirecciones canónicas: www vs. sin-www

Una de las decisiones, que va por modas, es el uso de un dominio con sitio web asociado y el uso del www o sin-www.

Seguramente, habrá gente que te diga que por no-sé-qué razones hay que usar sin-www y otros que www… y aunque en principio no debería afectar, ya que a cualquier nivel hemos de hablar de «hostname» (es decir, toda la dirección completa) sí que hay algunos elementos a tener en cuenta.

La primera de ellas es que cuando se inventó la web los dominios de por sí ya existían, y, para diferenciar el servicio de correo, de FTP o de la web, se planteó el uso del www delante del dominio. Así que sí, las webs, en teoría, deberían llevar los www según su invención. De todas formas, aunque esto es un «da igual», sí que hay algunos elementos técnicos a tener en cuenta, como por ejemplo el de las redirecciones.

La situación es cuando hemos de migrar, por ejemplo, de sin-www a www, teniendo en cuenta el HTTP y HTTPS; no, no puedes migrar directamente todo a la URL definitiva.

Y es que hay sistemas actuales de seguridad, por ejemplo el HSTS, que indican claramente cómo hemos de hacer esta mejora en la seguridad de las comunicaciones. Incluso, hay navegadores que, si no los haces en el orden correctos, podrían darte un mensaje de atención.

Vamos a partir de la base de todas estas combinaciones:

  • http://example.com/
  • http://www.example.com/
  • https://example.com/
  • https://www.example.com/: esta es a la que queremos llegar siempre.

Si comenzamos por la primera de ellas, tenemos que dar los siguientes pasos a la hora de hacer la redirección:

  1. http://example.com/
  2. http://www.example.com/
  3. https://www.example.com/

Hay que partir de la base de que no se debería pasar de HTTP a HTTPS si el hostname no coincide, por lo que primero hemos de mantenernos en el mismo protocolo HTTP, y cambiar el hostname, en este caso del sin-www al www. Ahora que el hostname ya es el mismo, podemos subir de HTTP a HTTPS sin recibir ningún tipo de aviso.

En el segundo caso, el recorrido es algo más sencillo:

  1. http://www.example.com/
  2. https://www.example.com/

En este caso, como el hostname ya es el mismo, simplemente tenemos que subir del HTTP al HTTPS.

El tercer caso también es bastante sencillo.

  1. https://example.com/
  2. https://www.example.com/

En este caso el protocolo HTTPS ya lo tenemos, por lo que no hay ningún problema en modificar simplemente el hostname y pasarlo de sin-www a www.

Con esto conseguiremos que las modificaciones de protocolos y hostname se hagan de forma correcta y ordenada sin que afecten a ninguna incompatibilidad.


Sobre este documento

Este documento está regulado por la licencia EUPL v1.2, publicado en WP SysAdmin y creado por Javier Casares. Por favor, si utilizas este contenido en tu sitio web, tu presentación o cualquier material que distribuyas, recuerda hacer una mención a este sitio o a su autor, y teniendo que poner el material que crees bajo licencia EUPL.