You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx配置:如何实现And条件匹配?含Static路径需求

Nginx 配置「与」(And)条件的实现方法

在Nginx里并没有专门的and关键字来直接声明逻辑与条件,但我们可以通过两种简洁的方式实现你需要的多条件判断——同时满足「匹配^static/.*」和「不匹配^api/.*」时执行rewrite操作。

方法一:单个if指令中用&&组合条件

你可以在同一个if的条件表达式里,用&&连接两个判断规则,记得给整个表达式加上括号(避免Nginx解析出错),示例配置如下:

if ($request_uri ~ ^static/.* && $request_uri !~ ^api/.*) {
    rewrite ^ /index.html break;
}

这里的规则细节:

  • ~ 表示区分大小写的正则匹配,如果需要不区分大小写,替换成~*即可
  • !~ 表示不匹配指定正则,对应的不区分大小写版本是!~*
  • && 就是逻辑与,只有当两个条件同时成立时,才会执行内部的rewrite指令

方法二:嵌套if指令(更直观易读)

如果觉得单个if里的条件太紧凑,嵌套if是更直观的选择——先判断第一个条件,满足后再判断第二个条件,两层都通过才执行操作:

if ($request_uri ~ ^static/.*) {
    if ($request_uri !~ ^api/.*) {
        rewrite ^ /index.html break;
    }
}

小提醒

注意$request_uri的格式:如果你的实际请求中,$request_uri是包含开头斜杠的(比如请求/static/js/app.js时,$request_uri的值是/static/js/app.js),那正则需要调整为^/static/.*和^/api/.*,不然会出现匹配失败的情况哦。

内容的提问来源于stack exchange,提问作者sof-03

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:27:26