Saltar al contenido

Cómo forzar una redirección de HTTP a HTTPS usando .htaccess

3 de septiembre de 2020 2 min de lectura

El protocolo HTTPS (Hypertext Transfer Protocol Secure) es el protocolo de de aplicación basado en HTTP destinado a transferir datos de manera segura. Corresponde a la versión segura de HTTP.

Si has adquirido un certificado SSL/TLS y quieres forzar a que los usuarios entren a la web de manera segura (usando el protocolo HTTPS) existe una manera fácil y útil a través del archivo .htaccess que se encuentra en la raiz de tu servidor web apache.

Creando la redirección mediante .htaccess

Para crear la redirección de HTTP a HTTPS usando .htaccess abrimos el archivo .htaccess y añadimos el siguiente código:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Guardamos el archivo y ya hemos forzado una redirección de HTTP a HTTPS mediante .htaccess.

Esto es lo que hace cada línea de código:

  • RewriteEngine On: Habilita las opciones y reglas de reescritura.
  • RewriteCond %[HTTPS] off: Esta línea comprueba si el protocolo desde donde se está accediendo es HTTP, en caso afirmativo, leerá la siguiente línea. Si no pusiésemos esta sentencia estaríamos ejecutando la siguiente regla sin ningún tipo de filtro.
  • RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]: Redirecciona del protocolo HTTP al HTTPS en código de estado 301. Si alguien accede a http://miweb.com, con esta regla se aplicaría una redirección a https://miweb.com.