mirror of
https://github.com/nginx/nginx.git
synced 2025-06-07 17:52:38 +08:00
Upstream: support named location for X-Accel-Redirect.
This commit is contained in:
parent
a9d9b09103
commit
d9f5baa0b8
@ -2218,19 +2218,26 @@ ngx_http_upstream_process_headers(ngx_http_request_t *r, ngx_http_upstream_t *u)
|
|||||||
}
|
}
|
||||||
|
|
||||||
uri = u->headers_in.x_accel_redirect->value;
|
uri = u->headers_in.x_accel_redirect->value;
|
||||||
ngx_str_null(&args);
|
|
||||||
flags = NGX_HTTP_LOG_UNSAFE;
|
|
||||||
|
|
||||||
if (ngx_http_parse_unsafe_uri(r, &uri, &args, &flags) != NGX_OK) {
|
if (uri.data[0] == '@') {
|
||||||
ngx_http_finalize_request(r, NGX_HTTP_NOT_FOUND);
|
ngx_http_named_location(r, &uri);
|
||||||
return NGX_DONE;
|
|
||||||
|
} else {
|
||||||
|
ngx_str_null(&args);
|
||||||
|
flags = NGX_HTTP_LOG_UNSAFE;
|
||||||
|
|
||||||
|
if (ngx_http_parse_unsafe_uri(r, &uri, &args, &flags) != NGX_OK) {
|
||||||
|
ngx_http_finalize_request(r, NGX_HTTP_NOT_FOUND);
|
||||||
|
return NGX_DONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (r->method != NGX_HTTP_HEAD) {
|
||||||
|
r->method = NGX_HTTP_GET;
|
||||||
|
}
|
||||||
|
|
||||||
|
ngx_http_internal_redirect(r, &uri, &args);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (r->method != NGX_HTTP_HEAD) {
|
|
||||||
r->method = NGX_HTTP_GET;
|
|
||||||
}
|
|
||||||
|
|
||||||
ngx_http_internal_redirect(r, &uri, &args);
|
|
||||||
ngx_http_finalize_request(r, NGX_DONE);
|
ngx_http_finalize_request(r, NGX_DONE);
|
||||||
return NGX_DONE;
|
return NGX_DONE;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user