Фигурные скобки {и) из 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 действительный.)