diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2009-04-07 15:50:08 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2009-04-07 15:50:08 +0000 |
| commit | 64851bb2aeef37a708ca34f74280c05cd38ad969 (patch) | |
| tree | 2d23dc3578e394b4db7b6a1e1d512394c500e86a /src | |
| parent | 74732dded23b68d2196fe4a150e026d794cf71f6 (diff) | |
| download | nginx-64851bb2aeef37a708ca34f74280c05cd38ad969.tar.gz nginx-64851bb2aeef37a708ca34f74280c05cd38ad969.tar.bz2 | |
fix r2590: error_page made an external redirect without query string
Diffstat (limited to 'src')
| -rw-r--r-- | src/http/ngx_http_core_module.c | 2 | ||||
| -rw-r--r-- | src/http/ngx_http_special_response.c | 12 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c index ffdd0b044..b6f4b11e1 100644 --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -3875,7 +3875,7 @@ ngx_http_core_error_page(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) args.len = 0; args.data = NULL; - if (cv.lengths == NULL) { + if (cv.lengths == NULL && uri.data[0] == '/') { p = (u_char *) ngx_strchr(uri.data, '?'); if (p) { diff --git a/src/http/ngx_http_special_response.c b/src/http/ngx_http_special_response.c index 38d0d393c..f50f1056e 100644 --- a/src/http/ngx_http_special_response.c +++ b/src/http/ngx_http_special_response.c @@ -451,14 +451,14 @@ ngx_http_send_error_page(ngx_http_request_t *r, ngx_http_err_page_t *err_page) return NGX_ERROR; } - if (err_page->value.lengths) { - ngx_http_split_args(r, &uri, &args); + if (uri.data[0] == '/') { - } else { - args = err_page->args; - } + if (err_page->value.lengths) { + ngx_http_split_args(r, &uri, &args); - if (uri.data[0] == '/') { + } else { + args = err_page->args; + } if (r->method != NGX_HTTP_HEAD) { r->method = NGX_HTTP_GET; |
