假设我从 cookie 中获取了一个值
$cookie_MY_COOKIE
包含64个字符。
如何删除 nginx 配置中的前 60 个字符?
答案1
该map
指令允许您根据另一个变量的值定义一个新变量。您可以使用正则表达式来捕获最后四个字符。
该块需要在块内(块外部)map
定义,因此新变量的名称必须是全局唯一的。http
server
看这个文件了解详情。
例如:
map $cookie_MY_COOKIE $my_value {
default "";
"~^.{60}(?<suffix>.{4})$" $suffix;
}
server {
...
}
正则表达式只会匹配长度正好为 64 个字符的值,否则将返回空字符串。
我们使用命名捕获,因为每次 Nginx 在您的配置中的其他地方评估正则表达式时,数字捕获都会被覆盖。
使用变量$my_value
从中获取最后四个字符$cookie_MY_COOKIE
。