return NGX_CONF_ERROR;
}
- if (overwrite >= 0) {
- err->overwrite = overwrite;
+ err->overwrite = overwrite;
- } else {
+ if (overwrite == -1) {
switch (err->status) {
case NGX_HTTP_TO_HTTPS:
case NGX_HTTPS_CERT_ERROR:
case NGX_HTTPS_NO_CERT:
err->overwrite = NGX_HTTP_BAD_REQUEST;
- break;
-
default:
- err->overwrite = err->status;
break;
}
}
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;
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");
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);
}