Necesito configurar mi proxy inverso para que se agregue el siguiente parámetro al final de la url: &locale=de-de
Esto casi funciona:
rewrite ^(.*)$ $1&locale=de-de break;
Sin embargo, el problema es que necesito agregar '& locale = de-de' solo si aún no está allí y si hay un '?' en la url ...
¿Puedo obtener ayuda para formular la expresión regular correcta para hacer esto?
Otra pregunta: ¿Por qué no se muestra el signo de interrogación en mi url si uso esto:
$ uri? $ Args
O $ uri $ is_args $ args traduce la url no codificada y el signo de interrogación se muestra como% 3f.
Ideas?
EDITAR: Parece que este comportamiento existe mientras se usa en combinación con proxy_pass. En una simple reescritura, funciona muy bien.

La coincidencia para
rewriteno incluye los parámetros de consulta, por lo que debe probarlo en otro lugar.Tratar:
fuente
rewritenecesita unlastpara ser seguro. EditadoEl
rewriteno modifica los parámetros de solicitud, solo la porción de ruta del URI. En mi experiencia, jugar con las reescrituras conduce a ciclos extraños, donde el nuevo parámetro se agrega hasta el infinito. Reescribir probablemente no sea la forma de hacer esto en Nginx.En su lugar, debe modificar la
$argsvariable utilizando lasetdirectiva:fuente
$argsdeba mutarse. En cambio, vea la solución de @AlexanderAzarov.