Mercurial > hg > nginx-ranges
diff src/http/ngx_http_special_response.c @ 615:c5122335e41d NGINX_0_8_53
nginx 0.8.53
*) Feature: now the "error_page" directive allows to change a status
code in a redirect.
*) Feature: the "gzip_disable" directive supports special "degradation"
mask.
*) Bugfix: a socket leak might occurred if file AIO was used.
Thanks to Maxim Dounin.
*) Bugfix: if the first server had no "listen" directive and there was
no explicit default server, then a next server with a "listen"
directive became the default server; the bug had appeared in 0.8.21.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 18 Oct 2010 00:00:00 +0400 |
parents | c456a023113c |
children | ce857f6b74a7 |
line wrap: on
line diff
--- a/src/http/ngx_http_special_response.c +++ b/src/http/ngx_http_special_response.c @@ -523,7 +523,9 @@ ngx_http_send_error_page(ngx_http_reques r->expect_tested = 1; } - r->err_status = overwrite; + if (overwrite >= 0) { + r->err_status = overwrite; + } if (ngx_http_complex_value(r, &err_page->value, &uri) != NGX_OK) { return NGX_ERROR; @@ -556,7 +558,7 @@ ngx_http_send_error_page(ngx_http_reques return NGX_ERROR; } - r->err_status = NGX_HTTP_MOVED_TEMPORARILY; + r->err_status = overwrite > 0 ? overwrite : NGX_HTTP_MOVED_TEMPORARILY; location->hash = 1; ngx_str_set(&location->key, "Location"); @@ -570,7 +572,7 @@ ngx_http_send_error_page(ngx_http_reques return ngx_http_send_refresh(r); } - return ngx_http_send_special_response(r, clcf, NGX_HTTP_MOVED_TEMPORARILY + return ngx_http_send_special_response(r, clcf, r->err_status - NGX_HTTP_MOVED_PERMANENTLY + NGX_HTTP_LEVEL_200); }