在nginx的站点配置文件中使用了rewrite,简单的rewrite没问题,但是rewrite中带有"{}"是,启动nginx报下面错误:

$ nginx: [emerg] directive "rewrite" is not terminated by ";" in /usr/local/nginx/conf/nginx.conf

解决的办法是把规则段使用引号引起来:

#rewrite ^/([0-9]{3,7})/$ /index.php?id=$1 break;  #报错
#修改为
rewrite "^/([0-9]{3,7})/$" /index.php?id=$1 break;

#本条可以不用引号
rewrite ^/(\d+)/$ /index.php?id=$1 break;

原因是当需要使用符号"{}"时,因为配置文件中都是用它来作为配置的段起止标记,所以为了安全起见,最好都带上引号。

已赞 2 0 评论