web-dev-qa-db-ja.com

nginx「if」正規表現内で変数を使用する方法

$ request_uriにユーザー名(Cookie内)が見つかった場合、バイパスする必要があるキャッシュシステムがあります。私はこのようなことをやろうとしていますが、変数を正規表現に補間することができません。何か提案はかなりしてください?

$ me変数をcookieからうまく設定できます。私はそれを正規表現に補間することができません。

set $chk == "need"; 
set $me "kevin"; 
if ($uri ~ $me) { set $chk ""; } 
if ($chk == "need") { rewrite ^ /testing }

私はいつもこのようなことを試しました:

if ($uri ~ "by-{$me}") { set $chk ""; }

ありがとう! -ケビン

25
Kevin

それは私が尋ねたものとは正確ではありませんが、私の目的にはうまくいくと思います。他の誰かが知っているなら、nginx PCRE正規表現内の変数を補間する方法にまだ興味があります!

set $chk == "need"; 
set $me "kevin"; 
if ($uri ~ /by-([^-]+)/) { set $by $1; }
if ($by = $me) {set $chk "";}
18
Kevin