]> git.kaiwu.me - nginx.git/commit
Fixed wrong URI after try_files in nested location (ticket #97).
authorMaxim Dounin <mdounin@mdounin.ru>
Sun, 16 Aug 2015 07:51:34 +0000 (10:51 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Sun, 16 Aug 2015 07:51:34 +0000 (10:51 +0300)
commit05982ffdf547332155d0c1540624717f57503cf0
treeef76e6ca41c98d94fd6d539052f895c8711ab2ad
parent4fec72dc8cbd4af81ce2602e778cae849aac072b
Fixed wrong URI after try_files in nested location (ticket #97).

The following configuration with alias, nested location and try_files
resulted in wrong file being used.  Request "/foo/test.gif" tried to
use "/tmp//foo/test.gif" instead of "/tmp/test.gif":

    location /foo/ {
        alias /tmp/;
        location ~ gif {
            try_files $uri =405;
        }
    }

Additionally, rev. c985d90a8d1f introduced a regression if
the "/tmp//foo/test.gif" file was found (ticket #768).  Resulting URI
was set to "gif?/foo/test.gif", as the code used clcf->name of current
location ("location ~ gif") instead of parent one ("location /foo/").

Fix is to use r->uri instead of clcf->name in all cases in the
ngx_http_core_try_files_phase() function.  It is expected to be
already matched and identical to the clcf->name of the right
location.
src/http/ngx_http_core_module.c