But the q parameter is empty on redirection.
Eu não vejo esse problema. Quando eu testo a configuração como escrita, ela cria um loop de redirecionamento porque o keywords='value'
original é anexado ao URI reconfigurado.
Você pode impedir que rewrite
inclua qualquer parâmetro original acrescentando ?
ao URI reconfigurado.
Por exemplo:
rewrite ^ /search?q=$arg_keywords? permanent;
Veja este documento para detalhes.