$request_uri without args

Richard Kearsley Richard.Kearsley at m247.com
Wed Sep 14 14:30:26 UTC 2011

Agentzh, I'm glad you replied :)
I am trying to find out why something is happening - a bug in nginx or lua module (currently finding it hard to reproduce)
I'm using:

location /proxy
	proxy_pass http://backend;

access_by_lua '
                                local res = ngx.location.capture("/proxy" .. ngx.var.request_uri, { args = { country = ngx.var.geoip_country_code, host = ngx.var.host } } )

if ngx.var.request_url contains args like this:


It gives 404

But like this:


Works and gets processed ok

I don't need args at backend - but I DO need the url still encoded

Backend when accessed directly with curl/wget with "/something/blah.jpg?34567" returns ok

Any ideas?

-----Original Message-----
From: nginx-bounces at nginx.org [mailto:nginx-bounces at nginx.org] On Behalf Of agentzh
Sent: 14 September 2011 15:14
To: nginx at nginx.org
Subject: Re: $request_uri without args

On Wed, Sep 14, 2011 at 9:50 PM, Richard Kearsley <Richard.Kearsley at m247.com> wrote:
> Hi
> Is it possible to access the $request_uri without the args at the end?
> I know I can use $uri - but this returns the url-decoded uri.
> I need the url-encoded (I.e. unchanged from original request) but with 
> the args stripped

Why not strip $request_uri yourself? You can use "if" + pcre regex or more preferably, set_by_lua/rewrite_by_lua provided by ngx_lua, to process what in $request_uri :)


nginx mailing list
nginx at nginx.org

More information about the nginx mailing list