Redirigir Nginx solo si los parámetros no están presentes

Redirigir Nginx solo si los parámetros no están presentes

Este es mi requisito para redirigir en Nginx:

Redirect Example
1. www.example.com/gaming.html -> www.example.com/gaming-zone.html

No Redirect example (when params are present, dont redirect)
2. www.example.com/gaming.html?name=foo -> www.example.com/gaming.html?name=foo 

Tengo una configuración de redireccionamiento muy simple:

rewrite ^/gaming.html$ /gaming-zone.html redirect;

que satisface el ejemplo 1 pero también redirige el ejemplo 2. ¿Alguien puede compartir cómo corregir la regla para que las URL que contienen parámetros no sean redirigidas?

Respuesta1

No parece que hayas intentado al menos intentar obtener información...

Según el módulo central http de nginxdocumentación. Puede utilizar $is_args, $args o $arg_name.

Por lo tanto, simplemente puede utilizar la siguiente línea:

if($is_args = ""){
    rewrite ^/gaming.html$ /gaming-zone.html redirect;
}

Como desea que la segunda URL no cambie, no es necesario hacer nada con esa URL.

información relacionada