diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c index 776438ba0..2379dcc89 100644 --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -1122,13 +1122,28 @@ ngx_http_core_find_location(ngx_http_request_t *r) { ngx_int_t rc; ngx_http_core_loc_conf_t *pclcf; +#if (NGX_PCRE) + ngx_int_t n; + ngx_uint_t noregex; + ngx_http_core_loc_conf_t *clcf, **clcfp; + + noregex = 0; +#endif pclcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); rc = ngx_http_core_find_static_location(r, pclcf->static_locations); if (rc == NGX_AGAIN) { + +#if (NGX_PCRE) + clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); + + noregex = clcf->noregex; +#endif + /* look up nested locations */ + rc = ngx_http_core_find_location(r); } @@ -1139,13 +1154,8 @@ ngx_http_core_find_location(ngx_http_request_t *r) /* rc == NGX_DECLINED or rc == NGX_AGAIN in nested location */ #if (NGX_PCRE) - { - ngx_int_t n; - ngx_http_core_loc_conf_t *clcf, **clcfp; - clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); - - if (clcf->noregex == 0 && pclcf->regex_locations) { + if (noregex == 0 && pclcf->regex_locations) { for (clcfp = pclcf->regex_locations; *clcfp; clcfp++) { @@ -1175,7 +1185,6 @@ ngx_http_core_find_location(ngx_http_request_t *r) return ngx_http_core_find_location(r); } } - } #endif return rc;