如何操作 nginx 变量字符串

Bay*_*tch 2 nginx nginx-location

我正在尝试操作 nginx 变量。

我有一个变量名称 $user,其中包含一个 UPN,例如某人@example.com 我想设置另一个变量 $xuser;成为 $user 减去 @domain - 即某人。

这是在位置块中完成的,所以我认为我不能使用地图。

我已经尝试过这个,但 $xuser 似乎从未被设置:

if ($user ~* "(?<p>[aa-zZ]+)@example.com")
{
        set $xuser $p;
}
Run Code Online (Sandbox Code Playgroud)

Sud*_*ead 5

您可以在“http”块中使用地图。

http://nginx.org/en/docs/http/ngx_http_map_module.html

map $user $xuser {
  ~^(\w+)@example.com $1;
  default '';
}
Run Code Online (Sandbox Code Playgroud)