Opened 2 years ago

Last modified 6 weeks ago

#2402 closed defect

Not right to skip location rewrite phase for server null location. — at Version 2

Reported by: akf00000@… Owned by:
Priority: minor Milestone:
Component: documentation Version: 1.19.x
Keywords: Cc:
uname -a: Linux localhost.localdomain 3.10.0-1160.el7.x86_64
nginx -V: nginx version: nginx/1.21.7
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.1.1 (compatible; BoringSSL) (running with BoringSSL)
TLS SNI support enabled

Description (last modified by akf00000@…)

Not right to skip location rewrite phase for server null location or not match any location.
In function ngx_http_rewrite_handler, the contidion to skip is not right.
we should change it like this:

@@ -147,7 +147,7 @@ ngx_http_rewrite_handler(ngx_http_request_t *r)
     cscf = ngx_http_get_module_srv_conf(r, ngx_http_core_module);
     index = cmcf->phase_engine.location_rewrite_index;
 
-    if (r->phase_handler == index && r->loc_conf == cscf->ctx->loc_conf) {
+    if (r->phase_handler >= index && r->loc_conf == cscf->ctx->loc_conf) {
         /* skipping location rewrite phase for server null location */
         return NGX_DECLINED;
     }

Change History (2)

comment:1 by akf00000@…, 2 years ago

Description: modified (diff)

comment:2 by akf00000@…, 2 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.