GNU/Linux >> Tutoriales Linux >  >> Linux

Nginx:¿reescribir o devolver para redirección?

Solución 1:

Tu opción 1:

return 301 $scheme://$host$request_uri;

Es exactamente lo que quieres.

No estoy seguro de por qué el rewrite ^ http://$host$request_uri? permanent; daría como resultado un 302 en lugar de 301. Esa es la sintaxis adecuada para obligarlo a devolver un 301.

Solución 2:

Técnicamente, puedes usar ambas opciones. Pueden funcionar.

Según la documentación de NGINX, use return si puedes . Es más simple y rápido porque NGINX deja de procesar la solicitud (y no tiene que procesar una expresión regular). Más que eso, puede especificar un código en el 3xx serie:

return (301 | 302 | 303 | 307) url;

Si tiene un escenario en el que necesita validar la URL con una expresión regular o necesita capturar elementos en la URL original (que obviamente no están en una variable NGINX correspondiente), entonces debe usar rewrite . Debes saber que rewrite devuelve solo el código 301 o 302.

rewrite regex URL [flag];

Puede leer más sobre devolución y reescritura en el sitio web de NGINX.


Linux
  1. nginx - 413 Entidad de solicitud demasiado grande

  2. ¿La tubería para la salida del lazo evita la modificación de la variable local?

  3. ¿Cómo configurar la redirección SSL para el sitio web en Plesk?

  4. Mod Reescritura para Joomla Enlaces permanentes

  5. Código de retorno de sed para ninguna coincidencia

25 comandos de Nginx que deben conocer los desarrolladores y administradores

NGINX como proxy inverso para aplicación de nodo o angular

Cómo configurar HAProxy como Load Balancer para Nginx en CentOS 7

Cómo configurar Nginx como proxy inverso para Apache en Ubuntu 18.04 VPS

Cómo instalar NGINX como proxy inverso para Apache en Ubuntu 18.04

Cómo configurar un servidor NGINX RTMP para transmisión