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

如何在Nginx配置文件中转义竖线(|)字符?

Nginx正则中转义竖线(|)的正确方式

在常规正则表达式里,用\|就能转义竖线,但Nginx配置文件里这么写不会生效——因为Nginx的配置解析器会先处理反斜杠:单个\会被配置解析器直接吃掉,传给正则引擎的就只剩|,自然会被当成正则的OR逻辑,导致匹配范围出错。

针对你给出的配置,正确写法是把\|改成\\|,让Nginx配置解析器保留一个\传给正则引擎,这样正则才能识别出这是需要匹配的竖线字符:

# Don't use the cache only for these users: (user1 & user2)
if ($http_cookie ~* "wordpress_logged_in_.+=(user1|user2)\\|.+") {
    set $no_cache 1;
    set $bypass_cache 1;
}

本质上,Nginx配置中的正则需要双重转义特殊字符,因为配置解析器会先处理一层反斜杠。

内容的提问来源于stack exchange,提问作者Mojtaba Rezaeian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:05:28