nginx:如何获取包含破折号的URL参数?

杰森斯

我正在使用nginx变量$arg_来获取url args。

但是我发现该网址是否类似于“ http://foobar.com/search?field-keywords=foobar ”,$arg_field_keywords或者$arg_field-keywords不起作用。

我可以field-keywords$arg_吗?

提前致谢。

Sergey Chizhik

我找到了文章,该技巧可以解决您的问题。

TLDR:

您可以通过使用map模块来重新映射具有复杂名称的变量,如下所示:

map $is_args $http_x_origin {
  default $http_x-origin;
}

诀窍是map不能完全解析其参数。语法为:map AX {default Y; },其中:

  • 任何变量,最好是不会触发太多内部处理的变量(由于nginx配置是声明性的,使用变量进行评估)。我使用$ is_args,因为它计算起来很便宜。
  • X是您将要创建的新变量的名称,即地图目标。
  • Y是您要访问的变量的名称。此时,它可以包含破折号,因为map会进行自己的解析。

我猜可能$args_也可以。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章