NG配置的一个小注意事项

之前配置nginx 301重定向一直遇到问题,今天终于解决了

这是一个正确的代码:

[code]

if ($host = ‘www.guakao580.com’) {
rewrite ^/(.*)$ http://www.580gk.cn/$1 permanent;
}

if ($host = ‘guakao580.com’) {
rewrite ^/(.*)$ http://www.580gk.cn/$1 permanent;
}

[/code]

 

错误示例: if ($host == ‘www.guakao580.com’ || $host == ‘guakao580.com’ )

 

nginx 配置不支持 if嵌套。也不支持==运算符。

nginx的配置中不支持if条件的逻辑与&& 逻辑或|| 运算 ,而且不支持if的嵌套语法,否则会报下面的错误:nginx: [emerg] invalid condition。

我们可以用变量的方式来间接实现。

if ($arg_unitid = 42012 && $uri ~/thumb/){
echo “shanmao.me”;
}

上面是错误代码,实现方式如下:

[code]

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 "shanmao.me";
}

[/code]

 

特别注意:if后面需要跟空格才能是括号。。

 

“NG配置的一个小注意事项”的一个回复

评论已关闭。