Mercurial > hg > nginx
diff src/http/modules/ngx_http_proxy_module.c @ 653:7cbef16c71a1 release-0.3.48
nginx-0.3.48-RELEASE import
*) Change: now the ngx_http_charset_module works for subrequests, if
the response has no "Content-Type" header line.
*) Bugfix: if the "proxy_pass" directive has no URI part, then the
"proxy_redirect default" directive add the unnecessary slash in
start of the rewritten redirect.
*) Bugfix: the internal redirect always transform client's HTTP method
to GET, now the transformation is made for the "X-Accel-Redirect"
redirects only and if the method is not HEAD; the bug had appeared
in 0.3.42.
*) Bugfix: the ngx_http_perl_module could not be built, if the perl was
built with the threads support; the bug had appeared in 0.3.46.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 29 May 2006 17:28:12 +0000 |
parents | 39b7d7b33c91 |
children | 400711951595 |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_proxy_module.c +++ b/src/http/modules/ngx_http_proxy_module.c @@ -1349,7 +1349,9 @@ ngx_http_proxy_rewrite_redirect_text(ngx p = ngx_copy(p, h->value.data, prefix); - p = ngx_copy(p, pr->replacement.text.data, pr->replacement.text.len); + if (pr->replacement.text.len) { + p = ngx_copy(p, pr->replacement.text.data, pr->replacement.text.len); + } ngx_memcpy(p, h->value.data + prefix + pr->redirect.len, h->value.len - pr->redirect.len - prefix); @@ -1694,7 +1696,14 @@ ngx_http_proxy_merge_loc_conf(ngx_conf_t pr->handler = ngx_http_proxy_rewrite_redirect_text; pr->redirect = conf->upstream.url; - pr->replacement.text = conf->upstream.location; + + if (conf->upstream.uri.len) { + pr->replacement.text = conf->upstream.location; + + } else { + pr->replacement.text.len = 0; + pr->replacement.text.data = NULL; + } } } @@ -2263,7 +2272,14 @@ ngx_http_proxy_redirect(ngx_conf_t *cf, pr->handler = ngx_http_proxy_rewrite_redirect_text; pr->redirect = plcf->upstream.url; - pr->replacement.text = plcf->upstream.location; + + if (plcf->upstream.uri.len) { + pr->replacement.text = plcf->upstream.location; + + } else { + pr->replacement.text.len = 0; + pr->replacement.text.data = NULL; + } return NGX_CONF_OK; }