Instrukcje warunkowe w Nginx

      Brak komentarzy do Instrukcje warunkowe w Nginx

Pojawiają się nie raz na forach pytania nt. instrukcji warunkowych w regułkach Nginx’a.
Często początkujący (i nie tylko) admini zastanawiają się jak w regułkach zapisać regułki posiadające łączniki typu „LUB” o „ORAZ”. Problem w tym, że nginx niestety nie obsługuje takowych i trzeba posiłkować się zmiennymi pomocniczymi lub zagnieżdżać/rozbijać warunki jak poniżej:

Logiczne „LUB”:

if ($host == ‚domain.com’ || $host == ‚domain2.com’)
{
// wykonaj cos
}

możemy zapisać jako:

if ($host = ‚domain.com’)
{
// wykonaj cos
}

if ($host = ‚domain2.com’)
{
// wykonaj cos
}

lub

set $test_var 0;
if ($host = ‚domain.com’)
{
set $test_var 1;
}

if ($host = ‚domain2.com’)
{
set $test_var 1;
}

if ($test_var = 1)
{
// wykonaj cos
}

Natomiast „ORAZ”:

if ($host == ‚domain.com’ && $host == ‚domain2.com’)
{
// wykonaj cos
}

Możemy zapisać jako:

if ($host = ‚domain.com’)
{
if ($host = ‚domain2.com’) {
// wykonaj cos
}
}

PS. Niebawem kod zacznie ładniej wyglądać, tylko znajdę jakiś sensowny plugin 😉

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *