如果在$request_uri中找到用户名(在cookie中),我需要绕过一个缓存系统。我正在尝试这样做,但无法将变量插入到正则表达式中。有什么好的建议吗?
我可以从cookie中很好地设置$me变量;我只是不能让它插入到正则表达式中。
set $chk == "need";
set $me "kevin";
if ($uri ~ $me) { set $chk ""; }
if ($chk == "need") { rewrite ^ /testing }
我一直在尝试这样的事情:
if ($uri ~ "by-{$me}") { set $chk ""; }
谢谢!-Kevin
发布于 2011-05-03 00:51:24
这并不完全是我所要求的,但我认为它可以达到我的目的。我仍然很好奇如何在nginx PCRE正则表达式中插入变量,如果其他人知道的话!
set $chk == "need";
set $me "kevin";
if ($uri ~ /by-([^-]+)/) { set $by $1; }
if ($by = $me) {set $chk "";}
发布于 2017-10-11 22:10:44
只需将$放在变量前面,就可以将变量合并到regex表达式中。无需执行${}操作
所以我想在你的情况下
if ($uri ~ "by-$me") { set $chk ""; }
正则表达式将等于by-kevin
对于更复杂的正则表达式规则,它的工作方式如下所示
我想让orgin匹配一个可能的域名列表
set $domainWhitelist "yahoo\.com|google\.com|foo\.com";
if ($http_origin ~* "https?://([\w-]*\.)*($domainWhitelist)(:\d+)?") {
...
}
https://stackoverflow.com/questions/5859848
复制相似问题