Mercurial > hg > nginx-quic
view src/os/win32/ngx_process_cycle.h @ 6227:bd55d75a1410
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.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sun, 16 Aug 2015 10:51:34 +0300 |
parents | b4cc553aafeb |
children |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_PROCESS_CYCLE_H_INCLUDED_ #define _NGX_PROCESS_CYCLE_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> #define NGX_PROCESS_SINGLE 0 #define NGX_PROCESS_MASTER 1 #define NGX_PROCESS_SIGNALLER 2 #define NGX_PROCESS_WORKER 3 void ngx_master_process_cycle(ngx_cycle_t *cycle); void ngx_single_process_cycle(ngx_cycle_t *cycle); void ngx_close_handle(HANDLE h); extern ngx_uint_t ngx_process; extern ngx_uint_t ngx_worker; extern ngx_pid_t ngx_pid; extern ngx_uint_t ngx_exiting; extern sig_atomic_t ngx_quit; extern sig_atomic_t ngx_terminate; extern sig_atomic_t ngx_reopen; extern ngx_uint_t ngx_inherited; extern ngx_pid_t ngx_new_binary; extern HANDLE ngx_master_process_event; extern char ngx_master_process_event_name[]; #endif /* _NGX_PROCESS_CYCLE_H_INCLUDED_ */