ПРОЕКТЫ 


  АРХИВ 


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: Nginx rewrite ABO.cms



On Mon, Mar 02, 2009 at 07:02:36PM +0300, Борис Долгов wrote:

> Нет, никогда не пишите в nginx if (!-e $request_filename) {
> Используйте error_page в старом или
> http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#try_files в новом
> nginx'e.

На данный момент без "if" не обойтись, но если взять патч из письма
с сабжектом "captures in regex location", то можно так:

location ~ ^/(rus|ukr|blr|de|frn|eng)*/?(.+)?$ {

    error_page   404  = /index.php?lang=$1&link=$2;
}

Хотя regex странный:
1) зачем "*" после "(rus|ukr|blr|de|frn|eng)" ?
2) "/?([^?]+)?$" тоже странная конструкция.

> 2 марта 2009 г. 15:36 пользователь Un Lexx <unlexx@xxxxxxxxx> написал:
> 
> > для апача правила выглядят как
> > RewriteCond %{REQUEST_FILENAME} !-f
> > RewriteCond %{REQUEST_FILENAME} !-d
> > RewriteRule ^(rus|ukr|blr|de|frn|eng)*/?([^?]+)?$
> > index.php?lang=$1&link=$2 [NC,QSA,L]
> >
> >  для nginx
> > if (!-e $request_filename) {
> >        rewrite ^(rus|ukr|blr|de|frn|eng)*/?([^?]+)?$
> > index.php?lang=$1&link=$2 last;
> >    }
> >
> > Правильно?
> >
> >
> 
> 
> -- 
> С уважением, Борис Долгов.
> icq 77556665
> e-mail boris@xxxxxxxxxxx

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



 




Copyright © Lexa Software, 1996-2009.