nginx中重写rewrite的语法错误 nginx: [emerg] unknown directive “if($host” in的原因及解决办法:
写了个301重定向的规则,结果报以上错误,原来nginx语法检测特别严格,if和后面括号以及变量等号这些元素都要有空格,所以正确的写法是:
if ( $host != 'www.a.com' ){
rewrite ^(.*)$ http://www.b.com$1 permanent;
}
用^代替空格看起来更清晰:
if^(^$host^!=^'www.a.com'^){
反正多打几个空格就是了,所以nginx中的中文配置文件解释可参考:Nginx配置文件中文注释详解 如果想了解更多nginx的rewrite配置,可参考:nginx rewrite 的 参数大全
评论区