Preciso configurar meu proxy reverso para que o seguinte parâmetro seja adicionado no final do URL: &locale=de-de
Isso quase funciona:
rewrite ^(.*)$ $1&locale=de-de break;
No entanto, o problema é que eu preciso anexar '& locale = de-de' apenas se ele ainda não estiver lá e se houver um '?' no URL ...
Posso obter ajuda para formular a regex correta para fazer isso?
Outra pergunta: por que o ponto de interrogação no meu URL não é mostrado se eu uso:
$ uri? $ Args
Ou $ uri $ is_args $ args traduz o URL não codificado e o ponto de interrogação é exibido como% 3f.
Ideias?
EDIT: Parece que esse comportamento existe ao usar em combinação com proxy_pass. Em uma simples reescrita, funciona muito bem.
A correspondência para
rewrite
não inclui os parâmetros de consulta, portanto, você deve testá-la em outro lugar.Experimentar:
fonte
rewrite
precisalast
ser seguro. Editado.o
rewrite
não modifica os parâmetros de solicitação, apenas a parte do caminho do URI. Na minha experiência, mexer nas reescritas leva a ciclos estranhos, nos quais o novo parâmetro é acrescentado ad infinitum. Reescrever provavelmente não é a maneira de fazer isso no Nginx.Em vez disso, você deve modificar a
$args
variável usando aset
diretiva:fonte
$args
deve ser modificado. Em vez disso, consulte a solução de @ AlexanderAzarov.