# HG changeset patch # User Maxim Dounin # Date 1562935168 -10800 # Node ID 5f642712e7ad7b5951c02c005b6d40bdf7e0cd55 # Parent 975d7ab37b390bf982b27a9134fdc2bbe99c0115 Perl: named locations in $r->internal_redirect(). diff --git a/src/http/modules/perl/ngx_http_perl_module.c b/src/http/modules/perl/ngx_http_perl_module.c --- a/src/http/modules/perl/ngx_http_perl_module.c +++ b/src/http/modules/perl/ngx_http_perl_module.c @@ -257,15 +257,21 @@ ngx_http_perl_handle_request(ngx_http_re } if (uri.len) { - ngx_str_null(&args); - flags = NGX_HTTP_LOG_UNSAFE; + if (uri.data[0] == '@') { + ngx_http_named_location(r, &uri); + + } else { + ngx_str_null(&args); + flags = NGX_HTTP_LOG_UNSAFE; - if (ngx_http_parse_unsafe_uri(r, &uri, &args, &flags) != NGX_OK) { - ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); - return; + if (ngx_http_parse_unsafe_uri(r, &uri, &args, &flags) != NGX_OK) { + ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); + return; + } + + ngx_http_internal_redirect(r, &uri, &args); } - ngx_http_internal_redirect(r, &uri, &args); ngx_http_finalize_request(r, NGX_DONE); return; }