Пользовался на VDS apache, теперь перешел на nginx/1.0.4. Не могу сообразить как лучше преобразовать конфигурацию mod_rewrite под синтаксис nginx. Пожалуйста помогите.
Вот что было для apache:
---
RewriteRule ^([a-z]+)-([0-9a-z]+)-([0-9a-z_]*)-?(.*)$ $1-$4?$2=$3 [NC,QSA]
RewriteRule ^([a-z]+)-?\.html$ $1.php [NC,L,QSA]
---
На всякий случай говорю, что использую сайтовый движок Cotonti.
Сейчас в качестве временного решения прописал настройки nginx так:
---
rewrite "^/([a-z]+)\.html$" /$1.php last;
rewrite "^/([a-z]+)-([a-z]+)-([0-9a-z_]*)\.html$" /$1.php?$2=$3 last;
rewrite "^/([a-z]+)-([a-z]+)-([0-9a-z_]*)-([a-z]+)-([0-9a-z_]*)\.html$" /$1.php?$2=$3&$4=$5 last;
rewrite "^/([a-z]+)-([a-z]+)-([0-9a-z_]*)-([a-z]+)-([0-9a-z_]*)-([a-z]+)-([0-9a-z_]*)\.html$" /$1.php?$2=$3&$4=$5&$6=$7 last;
rewrite "^/([a-z]+)-([a-z]+)-([0-9a-z_]*)-([a-z]+)-([0-9a-z_]*)-([a-z]+)-([0-9a-z_]*)-([a-z]+)-([0-9a-z_]*)\.html$" /$1.php?$2=$3&$4=$5&$6=$7&$8=$9 last;
---
Оно работает, но, согласитесь, метод довольно тупой. Параметров в строке может оказаться и больше. Хотелось бы более изящного и универсального решения.