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

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

if($host='56zx.com'){
   rewrite ^/(.*)$ http://www.56zx.com/$1 permanent;
}

原因是nginx语法检测特别严格,if和后面括号以及变量等号这些元素都要有空格,所以正确的规则是:

if ( $host = '56zx.com' ){
   rewrite ^/(.*)$ http://www.56zx.com/$1 permanent;
}

如果用^代替空格,规则如下:

if^(^$host^=^'56zx.com'^){
   rewrite ^/(.*)$ http://www.56zx.com/$1 permanent;
}

猜你喜欢

转载自blog.csdn.net/eclothy/article/details/44416555