#2402 closed defect (invalid)
Not right to skip location rewrite phase for server null location.
Reported by: | 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 )
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 (4)
comment:1 by , 2 years ago
Description: | modified (diff) |
---|
comment:2 by , 2 years ago
Description: | modified (diff) |
---|
comment:3 by , 2 years ago
Note:
See TracTickets
for help on using tickets.
The condition looks perfectly correct for me, and it does exactly what advertised: it skips processing of the server rewrites in location rewrite phase, since these are handled in the server rewrite phase. If you think the condition isn't correct for some reason, you may want to elaborate more on why do you think it is incorrect, why your condition is better, and which problem you are trying to solve.
Note well that Trac is generally a bad place for development-related discussions. Consider using the nginx-devel@ mailing list instead.