summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-04-07 15:50:08 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-04-07 15:50:08 +0000
commit64851bb2aeef37a708ca34f74280c05cd38ad969 (patch)
tree2d23dc3578e394b4db7b6a1e1d512394c500e86a
parent74732dded23b68d2196fe4a150e026d794cf71f6 (diff)
downloadnginx-64851bb2aeef37a708ca34f74280c05cd38ad969.tar.gz
nginx-64851bb2aeef37a708ca34f74280c05cd38ad969.tar.bz2
fix r2590: error_page made an external redirect without query string
-rw-r--r--src/http/ngx_http_core_module.c2
-rw-r--r--src/http/ngx_http_special_response.c12
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;