Nginx rewrite ABO.cms
Igor Sysoev
is at rambler-co.ru
Thu Mar 5 00:21:14 MSK 2009
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 at gmail.com> написал:
>
> > для апача правила выглядят как
> > 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 at dolgov.name
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list