mirror of
https://github.com/nginx/nginx.git
synced 2025-01-01 03:36:59 -06:00
Added clearing of r->valid_unparsed_uri on internal redirects.
This resolves issue with try_files (see ticket #70), configuration like location / { try_files $uri /index.php; } location /index.php { proxy_pass http://backend; } caused nginx to use original request uri in a request to a backend. Historically, not clearing of the r->valid_unparsed_uri on internal redirect was a feature: it allowed to pass the same request to (another) upstream server via error_page redirection. Since then named locations appeared though, and it's time to start resetting r->valid_unparsed_uri on internal redirects. Configurations still using this feature should be converted to use named locations instead. Patch by Lanshun Zhou.
This commit is contained in:
parent
c5968a998c
commit
d79f4523f8
@ -2506,6 +2506,7 @@ ngx_http_internal_redirect(ngx_http_request_t *r,
|
||||
#endif
|
||||
|
||||
r->internal = 1;
|
||||
r->valid_unparsed_uri = 0;
|
||||
r->add_uri_to_alias = 0;
|
||||
r->main->count++;
|
||||
|
||||
|
@ -1895,8 +1895,6 @@ ngx_http_upstream_process_headers(ngx_http_request_t *r, ngx_http_upstream_t *u)
|
||||
r->method = NGX_HTTP_GET;
|
||||
}
|
||||
|
||||
r->valid_unparsed_uri = 0;
|
||||
|
||||
ngx_http_internal_redirect(r, uri, &args);
|
||||
ngx_http_finalize_request(r, NGX_DONE);
|
||||
return NGX_DONE;
|
||||
|
Loading…
Reference in New Issue
Block a user