blog webempresa

Cómo forzar https desde el archivo .htaccess

por | Feb 11, 2022 | Aprender WordPress, Seguridad WordPress

Archivo oculto

Si tienes una web seguramente ya tengas clara la importancia de que esta utilice https, independientemente del uso que vayas a hacer de la misma (tienda, blog, etc).

Para que nuestra web cargue de manera segura no siempre es suficiente con que configuremos el CMS que usemos para que utilice ese protocolo. En bastantes ocasiones tendremos que añadir un código en los archivos de la web para forzar que cargue siempre de manera segura.

Este código se añade en el archivo .htaccess que es un archivo que se utiliza en los servidores web Apache para configurar funciones adicionales de la web como por ejemplo las redirecciones.

Es muy importante que antes de añadir el código de la redirección a nuestra web nos aseguremos de que tenemos un certificado SSL activo para el dominio ya que si no nos dará error.

 

Seguridad Icono

Ejemplos de redirecciones para forzar https en .htaccess

 

A continuación vamos a ver varios ejemplos de redirecciones que puedes usar en tu sitio web para forzar la carga por https.

Las redirecciones debes añadirlas al principio del archivo .htaccess de la carpeta de la web a la que le quieras aplicar esta redirección.

Es importante tener en cuenta que no todas las redirecciones que comentamos en este artículo funcionarán en todos los servidores ya que, según la configuración que tenga tu hosting, puedes tener que usar unas u otras. También es importante tener en cuenta que cualquier error al copiarlas puede hacer que tu web no cargue. Es por esto que es recomendable que hagas una copia del archivo .htaccess antes de hacer las modificaciones por si te da algún problema y necesitas restaurarlo.

En caso de que tras añadirla tu web muestre un error de redirecciones como err_too_many_redirects elimínala y prueba con otra de las que comentamos en este artículo, ya que este error seguramente sea consecuencia de que la que escogiste presenta alguna incompatibilidad con tu servidor o la configuración de tu página.

Ten en cuenta también que archivo .htaccess es un archivo oculto por lo que si utilizas cPanel y no lo ves desde el administrador de archivos, pulsa el botón configurar y luego marca la opción mostrar archivos ocultos. Tras esto ya deberías poder visualizarlo.

Archivo oculto

Redirección para forzar https

 

El código que mostramos a continuación lo que hace es comprobar que las peticiones se están haciendo por http y en caso de que sea así cargará con https:


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

Redirección para forzar https indicando el dominio

 

Esta redirección haría lo mismo que la anterior solo que en este caso indicamos el dominio que queremos redirigir como condición para que tenga lugar la redirección.

Tendrías que cambiar dominio.tld por el dominio que utilices. Si por ejemplo tu dominio es webmolona.com tendrías que cambiar “dominio” por webmolona y “.tld” por .com .

Con esta redirección también podemos decidir si queremos que cargue con www o sin www tras la redirección. Para ello, en la última línea del código que es la que indica la redirección tendríamos que poner https://www.dominio.tld o https://dominio.tld según como queramos que sea la dirección final.


RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{HTTP_HOST} ^dominio.tld$ [OR]
RewriteCond %{HTTP_HOST} ^www.dominio.tld$
RewriteRule ^(.*)$ https://www.dominio.tld/$1 [R=301,L]

Forzar https según el puerto de las peticiones

 

Esta redirección lo que hará es que todas las peticiones que entren por el puerto 80 sean redirigidas al puerto 443 (https).

Si usas este código tendrás que cambiar dominio.tld por el dominio que quieras usar.

En el caso de esta redirección, si tu servidor utiliza un proxy inverso puede darte error por lo que tendrías que usar alguna de las otras opciones que facilitamos en este artículo:


RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://dominio.tld/$1 [R=301,L]

Forzar SSL en una carpeta específica

 

En este caso tendrías que añadir este código dentro de un archivo .htaccess en la carpeta donde queramos forzar SSL.

Tendrás que cambiar “carpeta” por el nombre de la carpeta que quieras que cargue con https y dominio.tld por el dominio que estés usando.


RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{REQUEST_URI} carpeta
RewriteRule ^(.*)$ https://www.dominio.tld/carpeta/$1 [R,L]

Forzar la carga de contenido mixto con https

 

Puede darse el caso de que tengamos la web configurada para cargar con https y el certificado bien instalado pero la web siga mostrándose como no segura aunque forcemos la carga por https con alguno de los códigos que comentamos anteriormente.

Esto es debido a que nuestra web aun sigue cargando algún contenido con http en lugar de https. Para solucionar esto y hacer que esos contenidos se carguen también con https podemos añadir el siguiente código al .htaccess de nuestra web:


Header always set Content-Security-Policy "upgrade-insecure-requests;"

Conclusión

 

En este artículo hemos visto algunas opciones para forzar que tu web cargue con https y cómo añadirlas al .htaccess de tu web.

Ahora solo queda que te animes a probarlas en tu web para hacer que esta cargue de manera segura. Recuerda que si eres cliente de Webempresa y tienes cualquier duda o problema durante el proceso puedes enviarnos un ticket y estaremos encantados de ayudarte con el proceso.

Estos códigos que indicamos suelen ser válidos para la mayoría de webs pero algunos de los CMS más populares como WordPress, Joomla o Prestashop pueden requerir alguna configuración adicional para que cargue por https y se muestre como segura.

En caso de que te siga dando algún problema tras la configuración, puedes revisar estos artículos donde indicamos cómo forzar SSL en cada uno de esos tres CMS y cómo solucionar los problemas de carga de contenido mixto.

A mayores me gustaría comentarte que si quieres ver más códigos útiles para tu web puedes consultar el artículo sobre códigos útiles .htaccess para WordPress de nuestro blog donde hablamos sobre ello.

¿Te ha resultado útil este artículo?

Promo abril