Rewriting query string

Francis Daly francis at
Mon Dec 30 12:03:40 UTC 2019

On Sun, Dec 29, 2019 at 04:41:58AM -0500, Olaf van der Spek wrote:

Hi there,

> > rewrite ^(.*)$ $1?ra=$remote_addr break;
> The ra argument is inserted before the original query string. Is it possible
> to append it to the original query string?

Something like

  rewrite ^(.*)$ $1?$args&ra=$remote_addr? break;

should work. Note that it might look odd if there was no original
query string.

Also note - common practice on the web seems to be that the order of
key=value pairs in the query string is unpredictable; you may be happier
if you change your back-end to not care about the order (if you want
random web browsers to work with your application).

> Is this behavior documented somewhere? Couldn't find it.

If a replacement string includes the new request arguments, the previous
request arguments are appended after them.

> Can one also remove certain arguments from the query string this way?

Not easily, this way.

For that, you probably want either to use one of the embedded languages
to manipulate things; or to use the module referenced in the other reply.

Francis Daly        francis at

More information about the nginx mailing list