nginx的配置中不支持if条件的逻辑与&& 逻辑或|| 运算 ,而且不支持if的嵌套语法,否则会报下面的错误:nginx: [emerg] invalid condition。
我们可以用变量的方式来间接实现。
要实现的语句:
1
2
3
|
if
(
$
arg_unitid
=
42012
&&
$
uri
~
/
thumb
/
)
{
echo
"www.ttlsa.com"
;
}
|
如果按照这样来配置,就会报nginx: [emerg] invalid condition错误。
可以这么来实现,如下所示:
1
2
3
4
5
6
7
8
9
10
|
set
$
flag
0
;
if
(
$
uri
~
^
/
thumb
/
[
0
-
9
]
+
_160
.
jpg
$
)
{
set
$
flag
"${flag}1"
;
}
if
(
$
arg_unitid
=
42012
)
{
set
$
flag
"${flag}1"
;
}
if
(
$
flag
=
"011"
)
{
echo
"www.ttlsa.com"
;
}
|
转载请注明来自运维生存时间: http://www.ttlsa.com/html/3876.html