Forzar SSL usando .htaccess: Ejemplo completo
Forzar SSL usando .htaccess. Si deseamos que nuestra página web cargue con SSL, solo debemos de agregar este código dentro de nuestro fichero .htaacess que tiene que estar en la raíz de nuestro servidor.
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
¿Cómo forzar HTTPS mediante .htaccess? (Actualizado 2021)
Casi la gran mayoría de servidores web vienen ya con un certificado SSL por defecto, caso contrario debemos de instalarlo. Por lo tanto, su sitio web estará disponible a través de estos dos protocolos HTTP y HTTPS.
Sin embargo, es mejor usar solo este último porque cifra y protege los datos de su sitio web.
Para que solo cargue HTTPS podemos usar el archivo .htaccess para forzar la conexión HTTPS de manera predeterminada.
Forzar HTTPS en todo el sitio web
Existen varias formas y una es que se puede realizar a través de .htaccess con redirecciones 301, que redirige permanentemente una URL antigua a una nueva URL. Puede activar la función para forzar HTTPS en todo el tráfico entrante siguiendo estos pasos:
a) Ir al Administrador de archivos en el cPanel de alojamiento y abra .htaccess dentro de la carpeta public_html. Si no puedes localizarlo, asegúrate de crearlo o activar su visualización.
b) Si es un fichero nuevo inserte las siguientes líneas de código debajo de él:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
c) Por último, guarde los cambios y listo.
Forzar HTTPS en un dominio específico
Vamos a suponer que tenemos dos dominios: http://midominio1.com y http://midominio2.com. Sin embargo, Ambos dominios acceden al mismo sitio web, pero solo desea que el primero se redirija a la versión HTTPS. En este caso, debe utilizar el siguiente código:
RewriteEngine On RewriteCond %{HTTP_HOST} ^midominio1.com [NC] RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Importante: Asegúrate de reemplazar tu «midominio1» por el dominio real en el que intentas forzar HTTPS.
Forzar HTTPS en una carpeta específica
El archivo .htaccess también se puede utilizar para forzar HTTPS en carpetas específicas. Sin embargo, el archivo debe colocarse en la carpeta que tendrá la conexión HTTPS.
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(folder1|folder2|folder3) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Forzar SSL en WordPress
Si estas usando un CMS como WordPress y ya el servidor tiene instalado un SSL, solo queda forzarlo a que cargue el protocolo cifrado.
Se puede hacer vía fichero .htaacess o caso contrario si no te gusta manejar códigos se puede usar un Plugin llamado «Really Simple SSL» y listo.
CONCLUSIONES
- Después de realizar los cambios, borre la caché de su navegador e intente conectarse a su sitio a través de HTTP. Si todo se ha añadido correctamente, el navegador le redirigirá a la versión HTTPS sin problemas.
- Hemos aprendido a editar correctamente su archivo .htaccess y redirigido todo el tráfico HTTP a HTTPS, la versión segura de su sitio web.
- Dependiendo de la plataforma donde desarrolló su sitio web. Por ejemplo, puede configurar su sitio de WordPress, Joomla o PrestaShop para que funcione con HTTPS usando plugins gratuitos o de pago.