fix alias with variables, but without captures,

the bug had been introduced in r2566 and r2573
This commit is contained in:
Igor Sysoev 2009-03-26 15:24:19 +00:00
parent 517a8fc588
commit 1e5ef6b0f4

View File

@ -1695,7 +1695,15 @@ ngx_http_map_uri_to_path(ngx_http_request_t *r, ngx_str_t *path,
last = ngx_copy(path->data, clcf->root.data, clcf->root.len);
} else {
reserved += alias ? 1 : r->uri.len + 1;
#if (NGX_PCRE)
ngx_uint_t captures;
captures = alias && clcf->captures;
reserved += captures ? 1 : r->uri.len - alias + 1;
#else
reserved += r->uri.len - alias + 1;
#endif
if (ngx_http_script_run(r, path, clcf->root_lengths->elts, reserved,
clcf->root_values->elts)
@ -1711,10 +1719,12 @@ ngx_http_map_uri_to_path(ngx_http_request_t *r, ngx_str_t *path,
*root_length = path->len - reserved;
last = path->data + *root_length;
if (alias) {
#if (NGX_PCRE)
if (captures) {
*last = '\0';
return last;
}
#endif
}
last = ngx_cpystrn(last, r->uri.data + alias, r->uri.len - alias + 1);