mirror of
https://github.com/nginx/nginx.git
synced 2024-11-24 04:49:01 +08:00
args support in static error_page
This commit is contained in:
parent
49db9d4602
commit
615fe7f4be
@ -3471,6 +3471,7 @@ ngx_http_core_error_page(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||
{
|
||||
ngx_http_core_loc_conf_t *lcf = conf;
|
||||
|
||||
u_char *args;
|
||||
ngx_int_t overwrite;
|
||||
ngx_str_t *value, uri;
|
||||
ngx_uint_t i, n, nvar;
|
||||
@ -3539,6 +3540,8 @@ ngx_http_core_error_page(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||
}
|
||||
}
|
||||
|
||||
args = (u_char *) ngx_strchr(uri.data, '?');
|
||||
|
||||
for (i = 1; i < cf->args->nelts - n; i++) {
|
||||
err = ngx_array_push(lcf->error_pages);
|
||||
if (err == NULL) {
|
||||
@ -3577,7 +3580,19 @@ ngx_http_core_error_page(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||
}
|
||||
}
|
||||
|
||||
err->uri = uri;
|
||||
if (args) {
|
||||
err->uri.len = args - uri.data;
|
||||
err->uri.data = uri.data;
|
||||
args++;
|
||||
err->args.len = (uri.data + uri.len) - args;
|
||||
err->args.data = args;
|
||||
|
||||
} else {
|
||||
err->uri = uri;
|
||||
err->args.len = 0;
|
||||
err->args.data = NULL;
|
||||
}
|
||||
|
||||
err->uri_lengths = uri_lengths;
|
||||
err->uri_values = uri_values;
|
||||
}
|
||||
|
@ -225,6 +225,7 @@ typedef struct {
|
||||
ngx_int_t status;
|
||||
ngx_int_t overwrite;
|
||||
ngx_str_t uri;
|
||||
ngx_str_t args;
|
||||
ngx_array_t *uri_lengths;
|
||||
ngx_array_t *uri_values;
|
||||
} ngx_http_err_page_t;
|
||||
|
@ -441,8 +441,6 @@ ngx_http_send_error_page(ngx_http_request_t *r, ngx_http_err_page_t *err_page)
|
||||
|
||||
r->zero_in_uri = 0;
|
||||
|
||||
args = NULL;
|
||||
|
||||
if (err_page->uri_lengths) {
|
||||
if (ngx_http_script_run(r, &u, err_page->uri_lengths->elts, 0,
|
||||
err_page->uri_values->elts)
|
||||
@ -453,6 +451,7 @@ ngx_http_send_error_page(ngx_http_request_t *r, ngx_http_err_page_t *err_page)
|
||||
|
||||
p = u.data;
|
||||
uri = &u;
|
||||
args = NULL;
|
||||
|
||||
if (*p == '/') {
|
||||
|
||||
@ -488,6 +487,7 @@ ngx_http_send_error_page(ngx_http_request_t *r, ngx_http_err_page_t *err_page)
|
||||
|
||||
} else {
|
||||
uri = &err_page->uri;
|
||||
args = &err_page->args;
|
||||
}
|
||||
|
||||
if (uri->data[0] == '/') {
|
||||
|
Loading…
Reference in New Issue
Block a user