njs: get raw requestURI or full querystring

Sergey A. Osokin osa at freebsd.org.ru
Wed Apr 28 02:50:38 UTC 2021

Hi Gunter,

hope you're doing well these days.

On Tue, Apr 27, 2021 at 11:21:26PM +0200, Gunter Grodotzki wrote:
> Hi all,
> I would love to try out nginx njs for https://url.rw
> Unfortunately I do not seem to be able to get the value of the querystring e.g.
> in my case it does not contain any key-value pairs:
> https://url.rw/?https%3A%2F%2Flifeofguenter.de
> I am interested in the value “https%3A%2F%2Flifeofguenter.de” (well ideally
> urldecoded).

According to https://nginx.org/en/docs/njs/reference.html#http, the HTTP
request object has arguments:

    request arguments object, read-only

It's possible to get an argument with the following example:

    for (var arg in r.args) {
        if (arg != '') {
            str += arg;

The str can be unescaped then with the following function,


    Performs decoding of URL percent-encoded characters of the string,
    returns an unescaped query string.

Hope that helps.

Sergey Osokin

More information about the nginx-devel mailing list