Hello! On Tue, Mar 19, 2013 at 03:25:40PM +0400, Oleg wrote:
> On Tue, Mar 19, 2013 at 02:55:21PM +0400, Maxim Dounin wrote: > > Hello! > > > > Так, насколько я понимаю, будет мусор на выходе - сначала ответ > > 302 без тела, а потом ответ на исходный запрос. Посмотрите > > telnet'ом на ответ. > > Да :-). Я это предположил, но проверить забыл. > Какие-то символы 'ba' в ответе странные: Символы 'ba' - это chunked transfer encoding, который используется потому, что Content-Length ответа не известен на момент отправки заголовков. Странно, что это единственная вылезающая проблема. [...] > > Для access-фазы проще всего добавить заголовок location, и вернуть > > NGX_HTTP_TEMPORARY_REDIRECT (BTW, хочется возвращать именно 307?). > > Собственно, так же, как и для content-фазы, ибо там есть > > специальная обработка NGX_HTTP_*. Как-то так (выдержка из > > ngx_http_static_module.c): > > > > ngx_http_clear_location(r); > > > > r->headers_out.location = ngx_palloc(r->pool, sizeof(ngx_table_elt_t)); > > if (r->headers_out.location == NULL) { > > return NGX_ERROR; > > } > > > > r->headers_out.location->value.len = len; > > r->headers_out.location->value.data = location; > > > > return NGX_HTTP_TEMPORARY_REDIRECT; > > Т.е. устанавливать r->headers_out.status и делать ngx_http_send_header(r) > необязательно? Нет, возврата NGX_HTTP_TEMPORARY_REDIRECT - достаточно. -- Maxim Dounin http://nginx.org/en/donation.html _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru