web-dev-qa-db-ja.com

luaまたはnginxでクエリパラメータを取得する方法は?

私はこれを実装しようとしています- https://Gist.github.com/MendelGusmao/235631 Lua、nginxベースのURL短縮サービス、実装したい唯一の変更は、クエリ文字列パラメーターが短縮されている場合ですURL私はそのパラメータを取り、長いURLに挿入する必要があります。

例えば http://google.com?test=2http://abc.in/abc のようになります http:// abc。 in/abc?test = リダイレクトされます- http://google.com?test=

そのために、$ request_URIからクエリ文字列パラメーターを取得する必要があります。誰かがコードを手伝ってくれるでしょうか?

7
Mannu

_ngx.var.arg_name_を使用できるはずです。ここで、nameはアクセスするクエリパラメータの名前です。クエリパラメータの処理の詳細については、 このチュートリアルの「無限の名前を持つ変数」セクション を参照してください。 Lua nginx/openrestyの例については、私の ブログ投稿 も確認してください。

別の方法として、ngx.req.get_uri_args()を使用して、すべてのクエリパラメータを1つのテーブルとして取得できます。これらの方法の簡単な比較については、同じチュートリアルの このセクション を参照してください。

19
Paul Kulchenko

ngx.var.QUERY_STRINGを使用してクエリ文字列にアクセスし、エスケープを解除して解析することもできます。

6
Jerome Anthony

$arg_testを使用すると、nginxだけでクエリパラメータを取得できます。この例では、testがクエリパラメータの名前です。

これは http://nginx.org/en/docs/http/ngx_http_core_module.html#var_arg_ に記載されています。

1
Steve Chávez