Nginx如何获取多个$arg?
例如,我有URL:/test/new/?arg1=1&arg2=2&arg3=3 我还有nginx规则: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
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来做,但这可能太过分了。