Códigos de redirección: de HTTPS a HTTP y viceversa

Códigos de redirección: de HTTPS a HTTP y viceversa

Si tu sitio es HTTPS, debes configurar una redirección 301 de cualquier URL desde HTTP a HTTPS equivalente. Lo mismo ocurre a la inversa. En este artículo explicamos cómo.

Si acabas de pasar tu HTTP a HTTPS, no te olvides de redirigir todas las URL antiguas (HTTP) de nuevo (HTTPS).

Esto también se aplica a un sitio nuevo en HTTPS, ya que es probable que algunos de los enlaces (sin darte cuenta) sean HTTP.

Gestiona la redirección en el Apache VirtualHost

Una buena manera es configurar la redirección directamente en el archivo de configuración que define tu VirtualHost. Este archivo se puede encontrar en varios lugares, dependiendo del sistema que estés.

Si deseas redirigir cualquier URL de HTTP a HTTPS URL equivalente, añade esto en el host virtual correspondiente a HTTP:

Redirect permanent / https://www.example.com/

(Recuerda sustituir el nombre de tu sitio)

Si realmente deseas utilizar RewriteRule (en principio no es una buena idea, mira los comentarios):

RewriteEngine on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Esto funciona para todas las URLs gestionadas por el host virtual, con o sin el subdominio.

Obviamente, si lo que te interesa es todo lo contrario, si deseas redirigir cualquier URL desde HTTPS a HTTP URL equivalente, añade esto en el host virtual correspondiente a HTTPS:

Redirect permanent / http://www.example.com/

(Recuerda sustituir el nombre de tu sitio)

Si realmente deseas utilizar RewriteRule (en principio no es una buena idea, mira los comentarios):

RewriteEngine on
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Administrar la redirección en .htaccess

También puedes configurar estas redirecciones en un archivo .htaccess en la raíz de su sitio. En este caso, si deseas redirigir cualquier URL desde HTTP a HTTPS URL equivalente, añade esto en el archivo .htaccess en la raíz de tu sitio:

RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

La condición  % {HTTPS}! = on  significa "se solicita la URL sin HTTPS." También puedes probar  RewriteCond %{HTTPS} off

Si, por el contrario, la URL que quieres reorientar es desde HTTPS a HTTP URL equivalente, añade esto en el archivo .htaccess en la raíz de tu sitio web:

RewriteEngine on
RewriteCond %{HTTPS}
on RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Comentarios

Comentario de Cesar A - 16 de Noviembre de 2015 - 04:36
Sombre el envio de https a http, el que facilitas me dio un error interno del servidor, use este y me funciono: RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] Saludos
Comentario de Diego - 23 de Junio de 2016 - 23:56
Gracias cesar ese codigo si me funciono, como hago para saber si mi sitio si esta redireccionando a htpps?
Comentario de juan - 04 de Octubre de 2016 - 19:54
ya no funciona se coloca el http eliminando la s y automáticamente vuelve a https en este año 2016
Comentario de Didier - 16 de Noviembre de 2016 - 17:47
Gracias, use la penúltima opción de redirección por .htaccess, cabe mencionar que uso WordPress y primero coloque el código al final de mi archivo .htaccess y no funciono, después lo puse al principio y listo, funciono perfectamente.
Comentario de Jose Luis - 14 de Diciembre de 2016 - 19:13
Buenas, tengo una consultaa, tengo una web que trabaja completamente sobre HTTPS, pero por razones internas tengo 2 URLs que necesito que funcionen sobre HTTP, es posible hacerlo? si es asi, como deberia ser el codigo? Gracias!
Comentario de John - 06 de Enero de 2017 - 00:11
Gracias por compartir tan excelente código, ¡Funciona! Saludos!
Comentario de Luis - 18 de Abril de 2017 - 17:53
Perfecto, me funciono con lo de .htaccess de http a https, gracias
Comentario de Sergio - 04 de Enero de 2018 - 09:05
Muchas gracias, fácil, cortita y al pie. Felicidades por la explicación
Comentario de Pedro - 02 de Marzo de 2018 - 11:00
Muchas gracias. Probé con el .htacces y fue genial. Lo breve si bueno dos veces bueno!
Ha habido un error en el envío
Comentario enviado. Será revisado por la moderación antes de ser publicado.

Deja tu comentario

Tu nombre:
Tu email:
Tu comentario: