Muszę skonfigurować mój zwrotny serwer proxy, aby na końcu adresu URL dodano następujący parametr: &locale=de-de
To prawie działa:
rewrite ^(.*)$ $1&locale=de-de break;
Problem polega jednak na tym, że muszę dołączyć „& locale = de-de” tylko wtedy, gdy go jeszcze nie ma i jeśli jest „?” w adresie URL ...
Czy mogę uzyskać pomoc w sformułowaniu poprawnego wyrażenia regularnego, aby to zrobić?
Kolejne pytanie: Dlaczego znak zapytania w moim adresie URL nie jest wyświetlany, jeśli używam tego:
$ uri? $ Args
Lub $ uri $ is_args $ args tłumaczy adres URL niezakodowany, a znak zapytania jest wyświetlany jako% 3f.
Pomysły?
EDYCJA: Wygląda na to, że takie zachowanie istnieje podczas używania w połączeniu z proxy_pass. W prostym przepisaniu działa naprawdę dobrze.
Dopasowanie do
rewrite
nie obejmuje parametrów zapytania, więc musisz to sprawdzić gdzie indziej.Próbować:
źródło
rewrite
musilast
być bezpieczne. Edytowane.rewrite
Nie modyfikuje parametry żądania tylko część ścieżki URI. Z mojego doświadczenia, mieszanie się z przepisywaniem prowadzi do dziwnych cykli, w których nowy parametr jest dodawany ad infinitum. Przepisywanie prawdopodobnie nie jest sposobem na zrobienie tego w Nginx.Zamiast tego należy zmodyfikować
$args
zmienną za pomocąset
dyrektywy:źródło
$args
należy to zmutować. Zamiast tego zobacz rozwiązanie @ AlexanderAzarov.