2014-10-01 36 views
6

Próbuję zaimplementować to - https://gist.github.com/MendelGusmao/2356310 Lua, skórki adresów URL oparte na nginx, jedyną zmianą, którą chcę zaimplementować, jest to, że gdy jakiś parametr ciągu zapytania zawiera skrócony adres URL, muszę wziąć ten parametr i wstawić do długiego adresu URL.jak uzyskać parametr zapytania w lua lub nginx?

np. http://google.com?test=2 będzie jak http://abc.in/abc podczas gry na http://abc.in/abc?test=3 Zostanie przekierowany na - http://google.com?test=3.

Do tego, że muszę wziąć parametry ciągu zapytania od $ request_URI, czy ktoś może pomóc z jakimś kodem?

+0

http://wiki.nginx.org/HttpLuaModule#ngx.req.get_uri_args –

Odpowiedz

14

Powinieneś być w stanie użyć ngx.var.arg_name, gdzie name to nazwa parametru zapytania, do którego chcesz uzyskać dostęp. Zobacz Variables with Infinite Names section in this tutorial, aby uzyskać szczegółowe informacje na temat obsługi parametrów zapytania; możesz również sprawdzić mój blog post dla przykładów lua nginx/openresty.

Alternatywnie można użyć parametru ngx.req.get_uri_args(), aby pobrać wszystkie parametry zapytania jako jedną tabelę. Zobacz this section w tym samym samouczku, aby uzyskać krótkie porównanie tych metod.

5

Można również użyć ngx.var.QUERY_STRING, aby uzyskać dostęp do ciągu zapytania i unescape i przeanalizować go.