Nginx如何获取多个$arg?

Nginx如何获取多个$arg?,nginx,Nginx,例如,我有URL:/test/new/?arg1=1&arg2=2&arg3=3 我还有nginx规则:rewrite/test/(.*)//handlers/test.php?action=$1&query=$args break 但在我的处理程序中$\u GET['query']变量只包含arg1=1,但我需要所有查询 问题出在哪里?指令rewrite会自动附加原始查询字符串(除非您添加一个尾随的?)。看 因此/handlers/test.php?action=$1将包含示例中的参数acti

例如,我有URL:/test/new/?arg1=1&arg2=2&arg3=3

我还有nginx规则:
rewrite/test/(.*)//handlers/test.php?action=$1&query=$args break

但在我的处理程序中$\u GET['query']变量只包含
arg1=1
,但我需要所有查询


问题出在哪里?

指令
rewrite
会自动附加原始查询字符串(除非您添加一个尾随的
)。看

因此
/handlers/test.php?action=$1
将包含示例中的参数
action
arg1
arg2
arg3

查询=$args
无法按预期工作的原因是它扩展到:

query=arg1=1&arg2=2&arg3=3

这看起来像三个参数:
query=arg1=1
arg2=2
arg3=3

此外,如果您确实需要“query”来包含整个原始查询字符串,您基本上需要将url编码为$args,但我不知道在纯nginx中如何触发它。你可以用lua来做,但这可能太过分了。