A menudo, los robots de los motores de búsqueda almacenan información en caché sobre las páginas del sitio web, lo que lleva al usuario a una página en blanco o a una página insegura. HTTP protocolo en lugar del cifrado HTTPS.
Para estos casos existe la redirección o redireccionamiento desde una página del sitio a otros dominios/páginas, que se puede implementar en diferentes etapas. En este material, analizaremos las principales formas y casos.
Redirigir desde HTTP a HTTPS
Conectando vía HTTP El protocolo no se considera un punto de referencia para la comunicación segura desde hace mucho tiempo, por lo que muchos servicios ya utilizan la actualización a HTTPS, una conexión cifrada además de la clásica.
Hay reglas en Apache y Nginx que le permiten administrar hosts virtuales y el servidor en su totalidad. Para configurar una actualización de este tipo de esquema de URL desde HTTP a HTTPS, debes ir a los archivos de configuración del host virtual y configurar las reglas de manejo de tráfico:
sudo nano /etc/nginx/sites-available/default
De manera predeterminada, el archivo de configuración se llama default, si en su caso es diferente, reemplácelo. Agregue la configuración:
server {
listen 80;
server_name example.com;
return 301 https://$host;
}
server {
listen 443 ssl;
ssl_certificate /etc/nginx/keys/subkeys/certificate.crt;
ssl_certificate_key /etc/nginx/keys/subkeys/private.key;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
server_name example.com;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
}

Los hosts virtuales se dividen en bloques de servidores lógicos, que contienen internamente políticas de manejo de tráfico. Por lo tanto, si el primer bloque recibe un paquete de red en el puerto 80, que es clásico, HTTP, devolverá una directiva de retorno 301 que requiere que el navegador visite el sitio, que ya estará con el HTTPEsquema S.
Tenga en cuenta que, además de las configuraciones clásicas, se agrega un encabezado Strict-Transport-Security, que proporciona a los navegadores de los usuarios una etiqueta que indica que es necesario forzar una HTTPConexión S en lugar de una no segura. Esta característica permite mitigar el riesgo HTTP ataque de degradación, que permite degradar una conexión de cliente a un protocolo inseguro, sin verificación de autenticación e integridad, técnicamente mediante el mismo retorno 301.
Comprobemos el rendimiento de nuestro servicio y la redirección previamente configurada:

Sin embargo, si no queremos enviar códigos de redirección al usuario, existen excelentes alternativas a las redirecciones internas.
Redirección interna
Para gestionar el tráfico en nginx existe toda una serie de directivas que permiten implementar otra redirección. En este caso, el servidor web redirigirá la petición internamente y la procesará internamente, dando una respuesta correcta. La sintaxis de la directiva es la siguiente:
server {
listen 80;
server_name example.com;
location / {
internal_redirect @check_antivirus;
}
location @check_antivirus {
internal;
root /var/www/html
}
location /url {
internal_redirect /newurl;
}
location /newurl {
internal;
root /var/www/html
}
}

En este ejemplo, cuando el tráfico entra por las rutas / y /url, se producirá una redirección interna a la otra ruta con el resto del paquete intacto. Por ejemplo, su solicitud estaba en la ruta /url/new/id?customer=675 y se convertirá en /newurl/new/new/id?customer=675. Los ejemplos indican que puede utilizar una @location o una ruta con nombre. Después de realizar los cambios, no olvide verificar la configuración con el comando:
sudo nginx -t

¡La lógica de redirección en sí se puede almacenar no sólo en el servidor, sino también en formularios JS/HTML pasados!
Redirección a través de HTML/JS
Para implementar la lógica de redirección en el navegador es necesario utilizar directivas de la siguiente forma:
<head>
<meta http-equiv='refresh' content='0;URL=http://site.io'/>
<head>
De hecho, existe un controlador en el navegador que permite leer las cadenas en el HTML y, según las directivas, ejecutar la acción; en este caso, se integra la directiva de redirección. Donde http-equiv='refresh' indica la necesidad de recargar la página, content='0;URL=http://site.io' después de 0 segundos en una URL con el formato http://site.io.

Para JS existe un conjunto de funciones que pueden permitir al cliente conectarse a otro recurso de forma independiente, en este caso la funcionalidad es más amplia:
window.location = 'https://www.example.com';
La línea representa una redirección directa sin condiciones, donde se abre una nueva conexión en lugar de una existente. Y en el segundo caso que se muestra a continuación, se debe cumplir una condición lógica, que también redirigirá al usuario.
if (CONDITION) { window.location.href = 'https://www.example.com'; }
Las posibilidades en la web para controlar la lógica del procesamiento del tráfico son tan amplias como es posible, en cada etapa, desde el navegador y sus controladores HTML/JS hasta el servidor web con directivas. Si no tienes suficientes recursos, puedes realizar acciones en potentes servidores en la nube. Serverspace Proporciona aislado VPS / VDS Servidores para uso común y virtualizado.
