Puncte:0

Cum să obțineți valoarea variabilei în split_clients NGINX

drapel pl

eu folosesc [clienți_divizați] și funcționează perfect în majoritatea cazurilor.

Ref: https://nginx.org/en/docs/http/ngx_http_split_clients_module.html

split_clients returnează un șir literal pentru utilizare ulterioară.

Dar acum, am nevoie ca șirul returnat să conțină o variabilă, ca aceasta:

http context:

split_clients „${remote_addr}${http_user_agent}${date_gmt}” $my_variable {
    20% https://example.com/fixed_string/another_fixed_string;
    * https://example.com/$1/another_fixed_string;
}

Server context:

locație ~ ^/abc/(.*) {
   rescrie ^/abc/(.*) $my_variable redirect;
}

Când vizitez https://example.org/abc/something, se redirecționează către https://example.com/$1/another_fixed_string cu $1 este literalmente un șir în URL.

Aşteptarea mea este $1 acționează ca o variabilă, iar valoarea acesteia este ceva, apoi redirecționați către https://example.com/something/another_fixed_string

Cum se implementează?

drapel pl
Există vreo modalitate de a înlocui în șir, ceva de genul `str_replace("$1", $1, $my_variable)`?. Acest lucru ar funcționa dacă este fezabil.
Gerard H. Pille avatar
drapel in
Combinați split_clients cu o hartă?
drapel pl
@GerardH.Pille mulțumesc, funcționează. Îmi salvezi ziua!
Puncte:0
drapel pl

După cum a sugerat @Gerard H. Pille, folosind Hartă poate rezolva această problemă.

http context:

split_clients „${remote_addr}${http_user_agent}${date_gmt}” $my_variable {
    20% 0;
    * 1;
}

harta $my_variable $my_url {
   #default puteți seta și valoarea implicită

   0 https://example.com/fixed_string/another_fixed_string;
   1 https://example.com/$1/another_fixed_string;
}

Server context:

locație ~ ^/abc/(.*) {
   rescrie ^/abc/(.*) $my_url redirect;
}

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.