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
rewrite
no incluye los parámetros de consulta, por lo que debe probarlo en otro lugar.Tratar:
fuente
rewrite
necesita unlast
para ser seguro. EditadoEl
rewrite
no 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
$args
variable utilizando laset
directiva:fuente
$args
deba mutarse. En cambio, vea la solución de @AlexanderAzarov.