Welcome! Log In Create A New Profile

Advanced

Re: how to redirect user from handler

September 20, 2012 05:32AM
I tried to send my buffer with a message and the code looks like this:

static ngx_int_t ngx_http_my_handler(ngx_http_request_t *r)
{

header = ngx_list_push(&r->headers_out.headers);
if (header == NULL) {
return NGX_HTTP_INTERNAL_SERVER_ERROR;
}


header->value.len = strlen("http://new_location.com/1.dat");
header->value.data = ngx_pcalloc(r->pool, header->value.len);

ngx_snprintf(header->value.data, header->value.len, "%s",
"http://new_location.com/1.dat");
r->headers_out.status = NGX_HTTP_MOVED_TEMPORARILY;
r->chunked = 0;

ngx_http_send_header(r);

b = ngx_pcalloc(r->pool, sizeof(ngx_buf_t));

if (b == NULL) {
return NGX_HTTP_INTERNAL_SERVER_ERROR;
}

b->pos = "Go to new address";
b->last = "Go to new address" + sizeof("Go to new address");
b->memory = 1;
b->last_buf = 1;

out.buf = b;
out.next = NULL;

return ngx_http_output_filter(r, &out);
}

And this seems to work but 302 answer has a body and it is a chunked
response?
Is it possible to send it without body. I also do not want to be chunked
if it is possible.



On 09/20/2012 12:12 PM, Anatoli Marinov wrote:
> Hello Colleagues,
> Which is the right way to redirect user request from handler module.
> Now I have something like this in my handler:
>
> My handler function(r) {
> header = ngx_list_push(&r->headers_out.headers);
> header->key.len = sizeof("Location") - 1;
> header->key.data = (u_char *) "Location";
>
> header->value.len = strlen("http://new_location.com/1.dat");
> header->value.data = ngx_pcalloc(r->pool, header->value.len);
>
> ngx_snprintf(header->value.data, header->value.len, "%s",
> "http://new_location.com/1.dat");
> r->headers_out.status = NGX_HTTP_MOVED_TEMPORARILY;
> r->chunked = 0;
>
> ngx_http_send_header(r);
>
> return NGX_DECLINED;
> }
>
> I think this approach is wrong. It sends 302 to the client but there
> is a body with 404 return code which is not correct.
>
>
> So please advise me how to redirect from hander.
>
> Thanks in advance
> Anatoli Marinov
>
> _______________________________________________
> nginx-devel mailing list
> nginx-devel@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-devel

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

how to redirect user from handler

toli 1192 September 20, 2012 05:14AM

Re: how to redirect user from handler

toli 724 September 20, 2012 05:32AM

Re: how to redirect user from handler

Maxim Dounin 634 September 20, 2012 09:18AM

Re: how to redirect user from handler

toli 1088 September 20, 2012 09:50AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 240
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready