首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nginx中包含查询的位置筛选器

nginx中包含查询的位置筛选器
EN

Server Fault用户
提问于 2020-02-13 15:19:35
回答 1查看 465关注 0票数 1

这是一个超级丑陋的解决方案,因为特定的客户要求。

默认设置:对后端使用proxy_pass,如下所示(我已经删除了无用项)

代码语言:javascript
复制
server{
  server_name customer.mysite.com;
  location / {
    proxy_pass http://backend.mysite.com/[customerId];
  }
}

到目前为止,一切都被改写了,我们都很好。但是,现在的要求是,如果客户没有任何查询参数,我们应该添加一些。

我最初的想法是在location = /中使用第二条规则来进行完全匹配,但是文档并不表示这个方法根本不关心查询参数。

那么,在nginx中有什么方法可以满足我的需求,还是必须找到其他的方法呢?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-02-13 17:47:47

要测试查询字符串是否不存在,可以使用$args块将if变量与空字符串进行比较。若要将此规则仅应用于URI /,请将其放置在location = /块中。

例如:

代码语言:javascript
复制
location / {
    proxy_pass http://backend.example.com/customerId/;
}
location = / {
    if ($args = "") { rewrite ^ /?query=foo last; }
    proxy_pass http://backend.example.com/customerId/;
}

关于if的使用,请参阅D6

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1002954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档