代码之家  ›  专栏  ›  技术社区  ›  AJ.

如何在查询字符串中写入NGIX位置以捕获问题后的所有内容?

  •  0
  • AJ.  · 技术社区  · 6 年前

    我有一个类似这样的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 并捕获查询字符串中 ? . 我试过这个:

    location ~ /api/things/index?(.*) {
        return 200 $1;
    }
    

    但是 $1 是空的。如果我改变这个来捕捉整件事,比如:

    location ~ (/api/things/index?.*)
    

    我得到 /API/事物/索引 ,但问号后什么也没有。我已经在几个在线regex测试程序中尝试过regex,并且捕获似乎是有效的,但是关于nginx的位置一定有一些我不理解的地方。请帮助!

    1 回复  |  直到 6 年前
        1
  •  1
  •   AJ.    6 年前

    你可以试试这个

    location ~/api/things/index/(.*)$ {
      return 200 $1;
    }
    

    从OP编辑
    在下面的评论中,我发现我的问题与其说是正则表达式,不如说是使用捕获而不是 $args . 解决办法是:

    location ~/api/things/index(.*)$ {
        return 200 $args;
    }