mannuscript
mannuscript

Reputation: 4941

how to get query parameter in lua or nginx?

I am trying to implement this- https://gist.github.com/MendelGusmao/2356310 Lua,nginx based URL shortener,The only change i want to implement is when some query string parameter comes with shortened URL i need to take that parameter and insert into the long URL.

e.g. http://google.com?test=2 will be like http://abc.in/abc while hitting on http://abc.in/abc?test=3 I get redirected to - http://google.com?test=3.

For that i need to take query string parameters from $request_URI, can any one help with some code?

Upvotes: 11

Views: 44587

Answers (3)

Steve Chavez
Steve Chavez

Reputation: 1176

You can obtain the query parameter with just nginx by using $arg_test, test is the name of the query parameter in this example.

This is documented in http://nginx.org/en/docs/http/ngx_http_core_module.html#var_arg_.

Upvotes: 5

Jerome Anthony
Jerome Anthony

Reputation: 8021

You can also use ngx.var.QUERY_STRING to access the query string and unescape and parse it.

Upvotes: 7

Paul Kulchenko
Paul Kulchenko

Reputation: 26744

You should be able to use ngx.var.arg_name where name is the name of the query parameter you want to access. See Variables with Infinite Names section in this tutorial for details on query parameter handling; you may also check my blog post for Lua nginx/openresty examples.

As an alternative, you can use ngx.req.get_uri_args() to retrieve all query parameters as one table. See this section in the same tutorial for the brief comparison between these methods.

Upvotes: 27

Related Questions