Desarrollo y Tecnología > Servidores > Apache2 > Redireccionar HTTP a HTTPS con ModRewrite y .htaccess

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.

¡Mantengamos el contacto!

Me encantaría que te mantuvieras al día con el contenido que estoy generando. Recuerda que no es solo el blog, son las redes sociales, libros, y distintos pódcast 😎.

Hago todo lo posible para no hacer Spam,

7 comentarios en «Redireccionar HTTP a HTTPS con ModRewrite y .htaccess»

  1. 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

    Responder
    • 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 !

      Responder
  2. 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]?

    Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.