Redirecione o Nginx apenas se os parâmetros não estiverem presentes

Redirecione o Nginx apenas se os parâmetros não estiverem presentes

Aqui está meu requisito para redirecionar no 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 

Eu tenho uma configuração de redirecionamento muito simples -

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

que satisfaz o exemplo 1, mas também redireciona o exemplo 2. Alguém pode compartilhar como corrigir a regra para que URLs contendo parâmetros não sejam redirecionados?

Responder1

Não parece que você tentou pelo menos tentar obter informações....

De acordo com o módulo principal http nginxdocumentação. Você pode usar $is_args ou $args ou $arg_name.

Portanto, você pode simplesmente usar a seguinte linha:

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

Como você deseja que o segundo URL não mude, não há necessidade de fazer nada com esse URL.

informação relacionada