Trouble with $uri in subrequest

Hi there,

i’m having trouble getting the request_uri via lua in a subrequest.

ngx.var.uri will always return the uri of the parent request whereas
something like ngx.req.get_uri_args will return the correct args for the
subrequest.

any ideas on how to get the subrequets uri? or am i missing something
here?

i’m using 1.4.1, thanks in advance

Thomas

Posted at Nginx Forum:

Hello!

On Wed, Jul 17, 2013 at 1:51 PM, ThomasLohner wrote:

i’m having trouble getting the request_uri via lua in a subrequest.

ngx.var.uri will always return the uri of the parent request whereas
something like ngx.req.get_uri_args will return the correct args for the
subrequest.

any ideas on how to get the subrequets uri? or am i missing something here?

Could you please give a minimal example that can reproduce this issue?

Apparently, the following example works as expected on my side with
ngx_lua 0.8.4 + nginx 1.4.1 on Linux x86_64:

location = /sub {
    internal;
    content_by_lua '
        ngx.say("sr uri: ", ngx.var.uri)
    ';
}

location = /main {
    echo_subrequest GET /sub;
}

Accessing /main with curl yields

$ curl localhost:1985/main
sr uri: /sub

That is, ngx.var.uri evaluates to the URI of the subrequest, /sub, not
that of the parent request, /main.

Best regards,
-agentzh

oh my…

i was fooled by $request_uri which returns the parent uri. i understand
that
this is intended behavior.

sorry!

Posted at Nginx Forum: