Redireccionar HTTP a HTTPS con ModRewrite y .htaccess

En general cuando manejas wordpress y cambias la dirección del sitio por defecto a HTTPS, se manejan internamente las redirecciones para poder usar las nuevas direcciones.

El problema a veces es simplemente la página de inicio, que no se redirecciona por defecto. Hay plugins que te pueden hacer la vida más sencilla en esto, pero obviamente soy de las personas que no les gusta el camino fácil.

Si tu servidor tiene el mod_rewrite de apache2 activado, lo más sencillo es decirle que “reescriba” las direcciones dependiendo del contenido, y simplemente haga una redirección ( 301 ).

A continuación veremos como redireccionar las url para la que corresponda. Este es el mismo proceso que se usa para cuando cambias tu web de dirección.

Mi situación es la siguiente, y lo más probable es que tu no necesites todas estas condiciones, tengo un servidor cuyo certificado solo es con “www”, o sea, “https://www.MISITIO.cl” es el único que está certificado, por lo que no me sirve el “https://MISITIO.cl”, tomando esto en consideración, y sabiendo que el tráfico sin SSL ( no https ) no es seguro, tengo las siguientes condiciones.

 

#PARA LA REDIRECCIÓN HTTPS


#Prendemos el motor modrewrite. Esto es necesario para que las condiciones y reg
las funcionen.
RewriteEngine on

#Primera condición, SI es HTTPS sin wwww, que redireccione a www.
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

#Segunda condición. Si no es HTTPS y no tiene www, redirecciono a HTTPS con WWW.
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*) https://www.%{SERVER_NAME}/$1 [R,L]

#Tercero, si no es HTTPS y ya tiene www, solo redirecciono a HTTPS
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]


Eso sería todo, debería abarcar todas las condiciones.

7 Replies to “Redireccionar HTTP a HTTPS con ModRewrite y .htaccess”

  1. Rodrigo says:

    Estimado, yo tenía SSL activado por .htaccess con rewrite pero tuve problemas con la comunicación interna de webpay… tuve que desactivarlo mientras paso el proceso de certificación

    View Comment Responder
    1. ctala says:

      Solo ten en consideración que estos funcionan para redireccionar. Para la configuración de transbank debes usar las rutas ya con https incluido tanto para las direcciones de los CGI como para la dirección de cierre que aparece en el archivo de configuración.

      Gracias por el comentario !

      View Comment Responder
  2. Danillo says:

    Hola muy buenas acabo de instalar SSL a mi dominio, pero quiero que redirecione a https y le quite el www

    Como seria ahi?

    View Comment Responder
  3. Guillermo says:

    Hola, acabo de ponerlo en práctica, solo una duda.
    ¿Porque no se pone [R=301,L] en todos, sino que en la segunda y tercera condicion solo es [R,L]?

    View Comment Responder

Deja un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.