diff options
author | Ruslan Ermilov <ru@nginx.com> | 2016-12-22 11:58:52 +0300 |
---|---|---|
committer | Ruslan Ermilov <ru@nginx.com> | 2016-12-22 11:58:52 +0300 |
commit | f02170672926e6afe273340fefb44bd1cc1d6ed4 (patch) | |
tree | 73fab606ed909b5908874cf7132fcf6addbd5b8d /src/http/modules/ngx_http_static_module.c | |
parent | dd70e741970c841a1555911f6468b39870c0607b (diff) | |
download | nginx-f02170672926e6afe273340fefb44bd1cc1d6ed4.tar.gz nginx-f02170672926e6afe273340fefb44bd1cc1d6ed4.zip |
Fixed missing "Location" field with some relative redirects.
Relative redirects did not work with directory redirects and
auto redirects issued by nginx.
Diffstat (limited to 'src/http/modules/ngx_http_static_module.c')
-rw-r--r-- | src/http/modules/ngx_http_static_module.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/http/modules/ngx_http_static_module.c b/src/http/modules/ngx_http_static_module.c index f79c4aeee..07b95800d 100644 --- a/src/http/modules/ngx_http_static_module.c +++ b/src/http/modules/ngx_http_static_module.c @@ -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; |