我有一个看起来像这样的URL:
http://somedomain.loc/api/things/index?take=10&skip=0&page=1&pageSize=10&sort%5B0%5D%5Bfield%5D=date_created&sort%5B0%5D%5Bdir%5D=desc
我需要一个与/api/things/index
匹配的Nginx位置,并捕获?
之后的查询字符串中的所有内容。我已经尝试过了:
location ~ /api/things/index?(.*) {
return 200 $1;
}
但是$1
为空。如果我更改此设置以捕获整个内容,例如:
location ~ (/api/things/index?.*)
我得到/api/things/index
,但问号后什么也没有。我已经在多个在线正则表达式测试仪中尝试过正则表达式,并且捕获似乎可以正常工作,但是关于Nginx的位置肯定有些我不了解的地方。请帮忙!
答案 0 :(得分:1)
您也许可以尝试
location ~/api/things/index/(.*)$ {
return 200 $1;
}
通过OP编辑
就像下面的评论一样,事实证明我的问题不仅仅在于正则表达式,而在于它使用捕获而不是$args
。解决方案是:
location ~/api/things/index(.*)$ {
return 200 $args;
}