ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



On Sun, Jun 05, 2011 at 03:58:01AM -0400, hdcoder wrote:
> Пользовался на 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;
> ---
> 
> Оно работает, но, согласитесь, метод
> довольно тупой. Параметров в строке
> может оказаться и больше. Хотелось бы
> более изящного и универсального
> решения.

Метод, безусловно, довольно тупой.
А программистам Cotonti к 2009 году следовало бы уже понять, что в 21 веке
перекладывание разбора запроса на плечи рекурсивных RewriteRules - это
далеко не самое изящное и универсальное решение. Да и не быстрое, кстати.

На nginx тоже можно такое сообразить до 50 итераций, но я, увы, за всеми
этими скобочками, звёздочками и плюсиками теряю смысл написанного.
Любят же люди на ровном месте создавать проблемы.


-- 
Игорь Сысоев
http://sysoev.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.