• By Nacho
  • 20 de junio de 2023

Cómo Redirigir de HTTP a HTTPS con PHP

Cómo Redirigir de HTTP a HTTPS con PHP

Cómo Redirigir de HTTP a HTTPS con PHP 1000 667 Nacho

Dificultad Media

Como programador es posible que te enfrentes al problema de que tu web acaba sacando el aviso de «Sitio no seguro». Este aviso en móviles supone una alarma bastante grande, en la que a muchas personas con bajos conocimientos en internet pueden llegar a pensar que les va a entrar un «virus». Además de por seguridad, es importante mantener tu web con la versión en HTTPS por experiencia de usuario o como les gusta llamarlo desde hace un tiempo, por «UX». No tener tu web con HTTPS activo y funcionando puede llegar a conducir a que la gente se vaya de tu web generando rebote, lo cual debemos evitar a toda costa.

En este artículo, te enseñaremos cómo detectar si estás en una versión HTTP y redirigir a la versión segura HTTPS utilizando PHP. Mantén la seguridad de tu sitio web y protege la información de tus usuarios.

Detectando HTTP y Redirigiendo a HTTPS

Cuando se trata de seguridad en la web, es fundamental garantizar que la comunicación entre el usuario y tu sitio web esté cifrada. Para ello, necesitamos detectar si la conexión se está realizando a través de HTTP y, en caso afirmativo, redirigir al usuario a la versión segura HTTPS. Afortunadamente, con PHP, esto se puede lograr de manera sencilla.

Utilizaremos la superglobal $_SERVER en PHP para obtener información sobre la solicitud actual. Específicamente, nos enfocaremos en el valor de la variable $_SERVER['HTTPS']. Si esta variable no está definida o no es igual a 'on', significa que no se está utilizando HTTPS y debemos redirigir al usuario a la versión segura.

A continuación, te mostramos el código PHP necesario para realizar esta redirección:

<?php 
if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {
    // No se está utilizando HTTPS, redirigir a la versión HTTPS
    $redirectURL = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    header("Location: $redirectURL");
    exit();
}
?>

En este código, verificamos si la variable $_SERVER['HTTPS'] no está definida o no es igual a 'on'. En ese caso, construimos la URL de redirección utilizando 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] y enviamos una cabecera de redirección al usuario. Es importante mencionar que debes colocar este código al principio de tu archivo PHP o en la sección de encabezado antes de generar cualquier salida HTML.

No es necesario que modifiques nada de este código para que funcione donde quieras ubicarlo. Es compatible con PHP 5, PHP 7 y PHP 8. Lo que sí es importante, es indicar que debes ubicar este fragmento de código en la parte superior de tu código, antes de que nada se imprima por pantalla, para que la función «header()» haga su trabajo correctamente. Este tipo de redirección sería igual que una redirección 301, por lo que para SEO puede resultar de gran utilidad cuando el fichero .htaccess no es accesible o no es posible realizar los cambios en él.

¿Cuál es la forma más óptima para redigir de HTTP a HTTPS?

Es importante destacar que la forma ideal de realizar la redirección de HTTP a HTTPS es mediante la configuración del archivo .htaccess en tu servidor web. Este archivo de configuración te permite definir reglas y directivas que afectan el comportamiento de tu sitio web. Para redirigir de HTTP a HTTPS, puedes agregar las siguientes líneas de código en tu archivo .htaccess:

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

Estas reglas de reescritura (rewrite) utilizan mod_rewrite de Apache para detectar si la conexión se está realizando a través de HTTP (mediante RewriteCond %{HTTPS} off). Si se cumple esa condición, la segunda línea (RewriteRule) redirigirá todas las solicitudes a la versión segura HTTPS.

Por ejemplo, si un usuario intenta acceder a http://www.ejemplo.com/pagina, el archivo .htaccess redirigirá automáticamente a https://www.ejemplo.com/pagina.

Recuerda que debes tener habilitado mod_rewrite en tu servidor para que estas reglas funcionen correctamente. Además, es recomendable realizar una copia de seguridad de tu archivo .htaccess antes de realizar cualquier modificación para evitar problemas si ocurre algún error.

Al utilizar el archivo .htaccess, puedes garantizar que todas las solicitudes a tu sitio web sean redirigidas a la versión HTTPS, proporcionando una experiencia segura y confiable para tus usuarios.

Mantén tu Sitio Web Seguro con HTTPS

La implementación de HTTPS en tu sitio web ofrece múltiples beneficios en términos de seguridad y confianza para tus usuarios. Al utilizar HTTPS, se cifra la comunicación entre el navegador del usuario y tu servidor, lo que ayuda a prevenir el robo de información sensible y protege la integridad de los datos transmitidos.

Además de la seguridad, el uso de HTTPS también puede influir en la optimización de los motores de búsqueda. Los motores de búsqueda como Google consideran la seguridad como un factor importante para el posicionamiento de los sitios web en los resultados de búsqueda. Al migrar a HTTPS, puedes mejorar el posicionamiento de tu sitio web y generar más confianza entre tus visitantes.

Dejar una Respuesta