diff src/http/ngx_http_core_module.c @ 2185:e9420c1b6f25

fix noregex for inclusive locations
author Igor Sysoev <igor@sysoev.ru>
date Sun, 17 Aug 2008 17:58:16 +0000
parents fb3b084e7d42
children ecce31d90117
line wrap: on
line diff
--- 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_req
 {
     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_req
     /* 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_req
             return ngx_http_core_find_location(r);
         }
     }
-    }
 #endif
 
     return rc;