February 2018
Beginner to intermediate
348 pages
9h 40m
English
The if block should ideally be employed for simple situations, as its behavior might be surprising in some cases. Apart from the fact that if statements cannot be nested, the following situations may present issues:
# Two consecutive statements with the same condition:
location / {
if ($uri = "/test.html") {
add_header X-Test-1 1;
expires 7;
}
if ($uri = "/test.html") {
add_header X-Test-1 1;
}
}
In this case, the first if block is ignored and only the second one is processed. However, if you insert a Rewrite module directive in the first block, such as rewrite, break, or return, the first block will be processed and the second one will be ignored.
There are many other cases where the use of if causes problems: