Como redirecionar com string de consulta no Nginx

Como redirecionar com string de consulta no Nginx

Eu gostaria de redirecionar:

something.com/search?keywords='value'

para

something.com/search?q='value'

Aqui está minha configuração do Nginx:

location ~ /search {
       if ($args ~* "keywords=(.*)") {
            rewrite ^.*$ /search?q=$arg_keywords permanent;
        }
    }

Mas o qparâmetro está vazio no redirecionamento.

O que está errado?

Responder1

Mas o parâmetro q está vazio no redirecionamento.

Eu não vejo esse problema. Quando testo a configuração conforme escrita, ele cria um loop de redirecionamento porque o original keywords='value'é anexado ao URI reescrito.

Você pode evitar rewritea inclusão de quaisquer parâmetros originais anexando um ?ao URI reescrito.

Por exemplo:

rewrite ^ /search?q=$arg_keywords? permanent;

Veresse documentopara detalhes.

informação relacionada