花括号({和})从Apache到Nginx的重写规则。

我有这个规则,成功地在Apache上工作,但返回错误或Nginx:

rewrite ^/saison-([0-9]{1})$ /pages.php?cat_page=saison-$1&season=$1 last; rewrite ^/saison-([0-9]{1})/([a-z0-9-]+)$ /evenements.php?season=$1&title=$2 last; rewrite ^/saison-([0-9]{1})/([a-z0-9-]+)/([a-z0-9-]+)/([a-z0-9-]+)$ /evenements.php?season=$1&title=$2&place=$3&date=$4 last; rewrite ^/saison-([0-9]{1})/([a-z0-9-]+)/([a-z0-9-]+)/([a-z0-9-]+)/([az]+)$ /evenements.php?season=$1&title=$2&place=$3&date=$4&view=$5 last; 

我有 :
*重新启动nginx:[emerg]:指令“rewrite”不是以“;”结束 在/path/rwrules.nginx:1

如果我从我的重写规则中删除这4行,它的工作。 有什么问题 ?

阅读本文档 。 特别:

注意:对于花括号({和}),因为在正则表达式和块控制中都使用它们,为了避免冲突,带有大括号的正则表达式应用双引号(或单引号)括起来。

所以例如这行:

 rewrite ^/saison-([0-9]{1})$ /pages.php?cat_page=saison-$1&season=$1 last; 

应该:

 rewrite "^/saison-([0-9]{1})$" /pages.php?cat_page=saison-$1&season=$1 last; 

这应该删除“;” 语法错误(对于规则我没有检查他们是functionnaly有效的)。