Reputation: 4941
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
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
Reputation: 8021
You can also use ngx.var.QUERY_STRING
to access the query string and unescape and parse it.
Upvotes: 7
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