Преобразование настроек mod rewrite

hdcoder nginx-forum на nginx.us
Вс Июн 5 11:58:01 MSD 2011


Пользовался на 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;
---

Оно работает, но, согласитесь, метод
довольно тупой. Параметров в строке
может оказаться и больше. Хотелось бы
более изящного и универсального
решения.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,204038,204038#msg-204038




Подробная информация о списке рассылки nginx-ru