Фигурные скобки {и) из Apache на nginx переписывать правила.

У меня есть эти правила, которые успешно работали на apache, но возвращают ошибку или nginx:

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

Я :
*перезапуск nginx: [emerg]: директива "rewrite" не завершается ";" в /path/rwrules.nginx: 1

если я удалю эти 4 строки из моих правил перезаписи, это сработает. В чем проблема ?

1 ответов


читать это документация. особенно:

Примечание: для фигурных скобок ({ и }), поскольку они используются как в регулярных выражениях, так и для управления блоками, чтобы избежать конфликтов, регулярные выражения с фигурными скобками должны быть заключены в двойные кавычки (или одинарные кавычки).

Так, например, строка :

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

должно быть:

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

Это должно убрать ";" ошибка синтаксиса (правила я не проверял их functionnaly действительный.)