comment utiliser une variable à l'intérieur d'un nginx “si” expression régulière
J'ai un système de cache j'ai besoin de contourner si le nom de l'utilisateur (dans un cookie) est trouvé dans l' $request_uri. Je suis en train de faire quelque chose comme cela, mais ne peut pas obtenir la variable d'interpoler dans la regex. Toutes les suggestions jolie s'il vous plaît?
Je peux définir la variable $me suffit bien à partir du cookie; je ne peux pas le faire pour interpoler dans la regex.
set $chk == "need";
set $me "kevin";
if ($uri ~ $me) { set $chk ""; }
if ($chk == "need") { rewrite ^ /testing }
J'ai toujours essayé des choses comme ceci:
if ($uri ~ "by-{$me}") { set $chk ""; }
Merci!
-Kevin
OriginalL'auteur Kevin | 2011-05-02
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas exactement ce que j'ai demandé, mais je pense que ça va marcher pour mes fins. Je suis toujours curieux de voir comment interpoler une variable à l'intérieur d'un nginx regex PCRE si quelqu'un d'autre le sait!
OriginalL'auteur Kevin
Il est possible d'intégrer une variable dans une expression regex simplement en mettant $ en face de la variable ... pas besoin de faire ${}
donc je suppose que dans votre cas
l'expression régulière sera égal par kevin
J'ai eu il fonctionne comme ceci pour une plus complexe regex règle
où je voulais origine pour correspondre à une liste de noms de domaine possible
2018/07/14 19:03:59 [notice] 6#0: *1 "https?://([\w-]*\.)*($domainWhitelist)(:\d+)?" does not match
...OriginalL'auteur ambidexterous