电脑技术学习

nginx做301重定向if判断报错unknown directive "if($host!="

dn001

nginx做301重定向if 判断报错,提示

unknown directive "if($host!="

将不带www的域名重定向到带www的域名,规则如下:

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;  

}