我有成功在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-]+)/([a-z]+)$ /evenements.php?season=$1&title=$2&place=$3&date=$4&view=$5 last;
我有 :
*重新启动nginx:[emerg]:指令“ rewrite”不以“;”终止在/path/rwrules.nginx:1中
如果我从我的重写规则中删除这4行,它将起作用。
有什么问题 ?
最佳答案
阅读此documentation。特别:
注意:对于大括号({和}),正则表达式和块控制中都使用了它们,为避免冲突,带大括号的正则表达式用双引号(或单引号)引起来。
因此,例如:
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;
这应删除“;”语法错误(对于该规则,我没有检查它们是否有效)。