
Si tienes un sitio web, seguramente te habrás preguntado alguna vez cómo redireccionar http a https. ¿Qué significa esto y por qué es importante? En este artículo te lo explicamos de forma sencilla y práctica, y te mostramos cómo hacerlo paso a paso.
¿Qué es redireccionar http a https?
Redireccionar http a https significa que cuando alguien entra en tu sitio web usando la dirección http (por ejemplo, http://tusitio.com), automáticamente se le envía a la versión https (por ejemplo, https://tusitio.com). De esta forma, se asegura una conexión más segura y se evita que el navegador muestre un mensaje de advertencia al usuario.
¿Por qué es importante redireccionar http a https?
Redireccionar http a https tiene varios beneficios para tu sitio web, tanto a nivel de seguridad como de SEO. Veamos algunos de ellos:
- Seguridad: al usar https, se cifra la comunicación entre el servidor y el navegador, lo que impide que terceros puedan interceptar o modificar los datos que se envían. Esto es especialmente importante si tu sitio web maneja información sensible, como contraseñas, datos personales o tarjetas de crédito.
- SEO: Google considera el https como un factor de posicionamiento, y premia a los sitios web que lo usan con un mejor ranking en los resultados de búsqueda. Además, al redireccionar http a https se evita el contenido duplicado, que puede perjudicar tu SEO si Google indexa las dos versiones de tu sitio web.
- Confianza: al redireccionar http a https se muestra un candado verde en la barra de direcciones del navegador, lo que indica al usuario que tu sitio web es seguro y fiable. Esto puede aumentar la confianza y la conversión de tus visitantes.
¿Cómo redireccionar http a https con htaccess?
Existen varias formas de redireccionar http a https, pero una de las más sencillas y efectivas es usar el archivo .htaccess. Este es un archivo que se encuentra en la raíz de tu servidor web, y que permite configurar diferentes aspectos de tu sitio web. Para redireccionar http a https con .htaccess, solo tienes que añadir las siguientes líneas de código al principio del archivo.
Pero antes de hacerlo, debes tener en cuenta dos cosas:
- Debes tener activado el módulo mod_rewrite en tu servidor web. Este es el encargado de realizar las redirecciones. Si no sabes cómo activarlo, consulta con tu proveedor de hosting.
- Debes tener instalado un certificado SSL en tu sitio web. Este es el que permite usar el protocolo https y mostrar el candado verde en el navegador. Si no sabes cómo instalarlo, consulta con tu proveedor de hosting o usa un servicio gratuito como Let’s Encrypt.
Una vez que tengas estas dos cosas listas, puedes elegir una de las siguientes opciones de redirección según tus preferencias:
Código 1 (recomendado):
#Redireccionar tráfico a la version https SIN www
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://dominio.tld/%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
</IfModule>
#Redireccionar todo a la version https CON www
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.dominio.tld/%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]
</IfModule>
Escoge cualquiera de los dos fragmentos de código para añadirlo a tu sitio web, dependiendo de a qué versión quieras redirigir el tráfico. Lo recomendable es que, si la web ya usaba http SIN www, entonces hay que redirigir hacia la versión https SIN www también. Igualmente si usabas www.
Reemplaza «dominio.tld» por el dominio de tu sitio web, en mi caso sería androidjefe.com
Este código es el más recomendable desde mi punto de vista (es el que uso en mis webs), ya que redirige directamente a la versión https que hayas preferido (con o sin www) si el usuario ingresa a secas el dominio, digamos androidjefe.com. Solo si el usuario ingresa el dominio con www (cosa que pienso es poco común, por lo que nos ahorraríamos un «check» cuando no se hace esto), entonces se verificará esta condición y redigirá a la misma versión preferida.
Código 2:
#Redirecciona todo a https www
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]
</IfModule>
Este método probablemente genere más carga para la página y el server, ya que primero verifica todas las condiciones de http y www, y al último redirecciona a la versión preferida, en este caso a la versión CON www. Si quieres redirigir a la versión SIN www, solo quita el «www.» en la línea RewriteRule.
Código 3:
#redireccion a https SIN www
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Este es un código muy extendido en internet pero es incompleto y no funciona del todo bien (muchas páginas seguramente lo usan y por eso ves advertencias de que el sitio no es seguro) ya que no se está controlando correctamente el www y https. En vez de usar este código se recomienda cambiarlo por este:
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://domain.tld%{REQUEST_URI} [R=301,L,NE]
</IfModule>
Conclusión:
Recuerda que cualquier código que escojas debes añadirlo al principio de tu archivo .htaccess y debes copiarlo tal y como se indica, sin importar lo que ya tengas en tu archivo htaccess.
Fuente: Stack Overflow