mirror of
https://github.com/nginx/nginx.git
synced 2025-06-07 01:12:40 +08:00
Fixed missing "Location" field with some relative redirects.
Relative redirects did not work with directory redirects and auto redirects issued by nginx.
This commit is contained in:
parent
dd70e74197
commit
f021706729
@ -1067,7 +1067,7 @@ ngx_http_dav_location(ngx_http_request_t *r, u_char *path)
|
||||
u_char *location;
|
||||
ngx_http_core_loc_conf_t *clcf;
|
||||
|
||||
r->headers_out.location = ngx_palloc(r->pool, sizeof(ngx_table_elt_t));
|
||||
r->headers_out.location = ngx_list_push(&r->headers_out.headers);
|
||||
if (r->headers_out.location == NULL) {
|
||||
return NGX_ERROR;
|
||||
}
|
||||
@ -1086,11 +1086,8 @@ ngx_http_dav_location(ngx_http_request_t *r, u_char *path)
|
||||
ngx_memcpy(location, r->uri.data, r->uri.len);
|
||||
}
|
||||
|
||||
/*
|
||||
* we do not need to set the r->headers_out.location->hash and
|
||||
* r->headers_out.location->key fields
|
||||
*/
|
||||
|
||||
r->headers_out.location->hash = 1;
|
||||
ngx_str_set(&r->headers_out.location->key, "Location");
|
||||
r->headers_out.location->value.len = r->uri.len;
|
||||
r->headers_out.location->value.data = location;
|
||||
|
||||
|
@ -150,7 +150,7 @@ ngx_http_static_handler(ngx_http_request_t *r)
|
||||
|
||||
ngx_http_clear_location(r);
|
||||
|
||||
r->headers_out.location = ngx_palloc(r->pool, sizeof(ngx_table_elt_t));
|
||||
r->headers_out.location = ngx_list_push(&r->headers_out.headers);
|
||||
if (r->headers_out.location == NULL) {
|
||||
return NGX_HTTP_INTERNAL_SERVER_ERROR;
|
||||
}
|
||||
@ -182,11 +182,8 @@ ngx_http_static_handler(ngx_http_request_t *r)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* we do not need to set the r->headers_out.location->hash and
|
||||
* r->headers_out.location->key fields
|
||||
*/
|
||||
|
||||
r->headers_out.location->hash = 1;
|
||||
ngx_str_set(&r->headers_out.location->key, "Location");
|
||||
r->headers_out.location->value.len = len;
|
||||
r->headers_out.location->value.data = location;
|
||||
|
||||
|
@ -983,10 +983,8 @@ ngx_http_core_find_config_phase(ngx_http_request_t *r,
|
||||
return NGX_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* we do not need to set the r->headers_out.location->hash and
|
||||
* r->headers_out.location->key fields
|
||||
*/
|
||||
r->headers_out.location->hash = 1;
|
||||
ngx_str_set(&r->headers_out.location->key, "Location");
|
||||
|
||||
if (r->args.len == 0) {
|
||||
r->headers_out.location->value = clcf->name;
|
||||
|
@ -4927,8 +4927,8 @@ ngx_http_upstream_rewrite_location(ngx_http_request_t *r, ngx_table_elt_t *h,
|
||||
}
|
||||
|
||||
/*
|
||||
* we do not set r->headers_out.location here to avoid the handling
|
||||
* the local redirects without a host name by ngx_http_header_filter()
|
||||
* we do not set r->headers_out.location here to avoid handling
|
||||
* relative redirects in ngx_http_header_filter()
|
||||
*/
|
||||
|
||||
return NGX_OK;
|
||||
|
Loading…
Reference in New Issue
Block a user