Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#1358 closed defect (worksforme)

Only first parameter of querystring available

Reported by: Patrick Niebeling Owned by:
Priority: minor Milestone:
Component: other Version: 1.12.x
Keywords: Cc:
uname -a: Linux server01.gnilebein.de 4.4.0-91-generic #114-Ubuntu SMP Tue Aug 8 11:56:56 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
nginx -V: nginx version: nginx/1.12.1
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
built with OpenSSL 1.0.2g 1 Mar 2016
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

Description

Hello,

i tried to setup redirects based on the query string. This is an example of the url: www.domain.com/goto.php?client=XXX&customer=yyy.

But in $args, $query_string and $request_uri only the first parameter is available (client=XXX). The same behavior occurs in the log file.

Best regards,
Patrick

Change History (3)

comment:1 by Maxim Dounin, 3 years ago

Resolution: worksforme
Status: newclosed

The $request variable as logged in the standard access log format contains the request line as got from a client. If you don't see parameters there, it indicates that there were no parameters in the client request. That is, this does not look like an nginx bug, but rather some misunderstanding and/or misconfiguration on your side.

If you need further help with this, please consider support options available.

comment:2 by Patrick Niebeling, 3 years ago

I have added some extra headers in my personal nginx vhost config:

add_header X-args "$args";
add_header X-query_string "$query_string";
add_header X-request_uri "$request_uri";

Now you can try the following:

curl -iI https://www.gnilebein.de?test=1234&test2=12346

This is the result:

X-args: test=1234
X-query_string: test=1234
X-request_uri: /?test=1234

But where is the "test2=12346"?

comment:3 by Patrick Niebeling, 3 years ago

Okay, my misstake. I have to escape the &.

Version 0, edited 3 years ago by Patrick Niebeling (next)
Note: See TracTickets for help on using tickets.