regex - 如何编写 Nginx 位置以捕获查询字符串中问号后的所有内容?
问题描述
我有一个如下所示的 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
我需要一个匹配的 Nginx 位置,/api/things/index
并在?
. 我试过这个:
location ~ /api/things/index?(.*) {
return 200 $1;
}
但是$1
是空的。如果我改变它来捕捉整个事情,比如:
location ~ (/api/things/index?.*)
我得到/api/things/index
了,但问号后什么都没有。我已经在几个在线正则表达式测试器中尝试了正则表达式,并且捕获似乎有效,但肯定有一些关于 Nginx 位置的东西我不理解。请帮忙!
解决方案
你可以试试这个
location ~/api/things/index/(.*)$ {
return 200 $1;
}
从 OP 编辑
如下面的评论,结果证明我的问题与其说是正则表达式,不如说是使用捕获而不是$args
. 解决方案是:
location ~/api/things/index(.*)$ {
return 200 $args;
}
推荐阅读
- javascript - 如何遍历数组并在 JavaScript 中的第一个索引内进行迭代
- winapi - 尝试使用 LoadLibraryEx 加载 pyd 并失败
- python - 使用 python 代码从窗口资源管理器打开图像文件
- javascript - 从 js 隐藏 POS RewardButton。奥多 14
- python - 如何用python中前一周(天)的同一天和同一时间的值来估算时间序列数据中的缺失值
- jquery - 来自颜色数组的随机框阴影
- javascript - JQuery 动态菜单使用嵌套 JSON 对象前 2 级手风琴,3 和 4 悬停弹出
- python - 如何用numpy保存张量?
- node.js - npm 指向不同的 registry.npm 错误!网络 getaddrinfo ENOTFOUND
- python - DjangoRestFramework 非 orm 序列化器和源