$request是log_format的一个属性,其格式类似于:
GET /stocks?pattern=1a2b3c&isauto=1&associate=0&userid=4d5e6f&pl=g&isrealcode=1 HTTP/1.1
或者像这样:
GET /stocks?pattern=1a2b3c&field=5 HTTP/1.1
我想写一个正则表达式来截取中间的字符串,并将其格式更改为以下形式:
pattern=1a2b3c&...=...&...=... => pattern:1a2b3c,...:...,...:...
使用以下表达式提取中间字符串:
if ($request ~* "GET /stocks?(.*) HTTP/1.1$"){
set $custom $1;
}
提取的字符串如下所示:
pattern=1a2b3c&field=5&...=...
如何替换这些符号:
'=' => ':' '$'=>','