# HG changeset patch # User Igor Sysoev # Date 1232539882 0 # Node ID 43dcf8cc2cb1e92624ed63ac97ddf58089f08e6c # Parent 1aff348d9aa85a6d6733499fa4a046c9b8e6a5f8 allow directories in try_files diff -r 1aff348d9aa8 -r 43dcf8cc2cb1 src/http/ngx_http_core_module.c --- a/src/http/ngx_http_core_module.c Mon Jan 19 16:42:14 2009 +0000 +++ b/src/http/ngx_http_core_module.c Wed Jan 21 12:11:22 2009 +0000 @@ -1038,6 +1038,7 @@ ssize_t reserve, allocated; u_char *p, *name; ngx_str_t path; + ngx_uint_t test_dir; ngx_http_try_file_t *tf; ngx_open_file_info_t of; ngx_http_script_code_pt code; @@ -1133,6 +1134,8 @@ } } + test_dir = tf->test_dir; + tf++; ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, @@ -1172,7 +1175,7 @@ continue; } - if (!of.is_file) { + if (of.is_dir && !test_dir) { continue; } @@ -3853,6 +3856,11 @@ tf[i].name = value[i + 1]; + if (tf[i].name.data[tf[i].name.len - 1] == '/') { + tf[i].test_dir = 1; + tf[i].name.len--; + } + n = ngx_http_script_variables_count(&tf[i].name); if (n) { diff -r 1aff348d9aa8 -r 43dcf8cc2cb1 src/http/ngx_http_core_module.h --- a/src/http/ngx_http_core_module.h Mon Jan 19 16:42:14 2009 +0000 +++ b/src/http/ngx_http_core_module.h Wed Jan 21 12:11:22 2009 +0000 @@ -245,6 +245,7 @@ ngx_array_t *lengths; ngx_array_t *values; ngx_str_t name; + ngx_uint_t test_dir; /* unsigned test_dir:1; */ } ngx_http_try_file_t;