Rewriting query string

Sergey A. Osokin osa at freebsd.org.ru
Sun Dec 29 11:58:46 UTC 2019


Hi Olaf,

hope you're doing well.

On Sun, Dec 29, 2019 at 04:41:58AM -0500, Olaf van der Spek wrote:
> > 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?
> Is this behavior documented somewhere? Couldn't find it.
> Can one also remove certain arguments from the query string this way?

The following code snippet shows another arguments has been added after
the original query:

    server {
        listen       8080;
        location / { return 200 "OK:$request_uri\n"; }
    }

    server {
        listen       80;
        location / {
                rewrite ^(.*)$ $1?ra=$remote_addr break;
		proxy_pass http://127.0.0.1:8080;
        }
    }
--------
% curl -i http://127.0.0.1/foo
HTTP/1.1 200 OK
Server: nginx/1.17.7
Date: Sun, 29 Dec 2019 11:51:32 GMT
Content-Type: application/octet-stream
Content-Length: 21
Connection: keep-alive

OK:/foo?ra=127.0.0.1
--------

There are several ways to manage a list of arguments of a query
string and the embedded perl module definitely can help in that
case.

Another approach is to use the following third-party module,
https://github.com/wandenberg/nginx-sorted-querystring-module

-- 
Sergey Osokin


More information about the nginx mailing list