nginx做301重定向if判断报错unknown directive

Nginx做301重定向if 判断报错,提示
unknown directive "if($host!="  
将不带www的域名重定向到带www的域名,规则如下:
【nginx做301重定向if判断报错unknown directive】if($host='pc004.com'){     
rewrite ^/(.*)$ http://www.pc004.com/$1 permanent; 

原因是nginx语法检测特别严格,if和后面括号以及变量等号这些元素都要有空格,所以正确的规则是:
 
if ( $host = 'pc004.com' ){  
 rewrite ^/(.*)$ http://www.pc004.com/$1 permanent;  
}   
如果用^代替空格,规则如下:
if^(^$host^=^'pc004.com'^){  
rewrite ^/(.*)$ http://www.pc004.com/$1 permanent;  
}




    推荐阅读