Fwd: Re: расширение return

Gena Makhomed gmm на csdoc.com
Пн Авг 1 08:25:49 UTC 2011


документация по директиве return которая отсутствует на сайте:

http://sysoev.ru/nginx/docs/http/ngx_http_rewrite_module.html#return

-------- Original Message --------
Subject: Re: расширение return
Date: Fri, 18 Jun 2010 14:05:17 +0400
From: Igor Sysoev <igor at sysoev.ru>
Reply-To: nginx-ru at nginx.org
To: nginx-ru at nginx.org

On Thu, Jun 17, 2010 at 02:20:52PM +0400, Igor Sysoev wrote:

> On Thu, Jun 17, 2010 at 02:15:22PM +0400, Igor Sysoev wrote:
>
> > On Thu, Jun 17, 2010 at 11:07:12AM +0100, Valery Kholodkov wrote:
> >
> > > О, можно будет сделать более универсальный eval:
> > >
> > > eval $a {
> > >     return 200 "blah";
> > > }
> >
> > А какая семантика ?
> >
> > Вообще-то я не хочу ничего добавлять в этот мерзкий rewrite модуль,
> > но return мне нравится. Да и понадобилось по работе.
>
> Я бы ещё сделал
>
>   location /old/ {
>       location ~ ^/old(.+)$ {
>           return  http://site.com$1;
>       }
>
> или
>
>   location /old/ {
>       location ~ ^/old(.+)$ {
>           return  301  http://site.com$1;
>       }
>
> Вот такую личную неприязнь я испытываю к rewrite, что кушать не могу!

Итак, патч. Варианты использования:

     # старые
     return  204;
     return  404;
     return  500;

     # новые
     return  200;
     return  200  "OK\n";
     return  404  "not found\n";      # не перехватывается error_page
     return  301  http://site.ru$request_uri;
     return  302  http://site.ru$request_uri;
     return  303  http://site.ru$request_uri;
     return       http://site.ru$request_uri;     # по умолчанию 302
     return       https://site.ru$request_uri;    # по умолчанию 302
     return       $scheme://site.ru$request_uri;  # по умолчанию 302


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




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