From: Jim Jagielski Date: Fri, 1 May 2015 17:02:08 +0000 (+0000) Subject: Merge r1675103 from trunk: X-Git-Tag: 2.4.13~138 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c812a313b234a0a5c8c704292a42989fb6ed047a;p=apache Merge r1675103 from trunk: If a directory exists but no indexes can be resolved, the fallback resource should be attempted first before giving up. Submitted By: Jack , covener Committed By: covener Submitted by: covener Reviewed/backported by: jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1677186 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 43d60334ff..a04c2798c0 100644 --- a/CHANGES +++ b/CHANGES @@ -25,6 +25,10 @@ Changes with Apache 2.4.13 *) mod_status: Add more data to machine readable server-status produced when using the "?auto" query string. [Rainer Jung] + *) Allow FallbackResource to work when a directory is requested and + there is no autoindex nor DirectoryIndex. + [Jack , Eric Covener] + *) mod_proxy_wstunnel: Bypass the handler while the connection is not upgraded to WebSocket, so that other modules can possibly take over the leading HTTP requests. [Yann Ylavic] diff --git a/STATUS b/STATUS index 8cf48dbb9c..730c1e4cb0 100644 --- a/STATUS +++ b/STATUS @@ -105,11 +105,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - *) mod_dir: Use FallBackResource when DirectoryIndex is not available. PR56067 - trunk patch: 1675103 - 2.4.x patch: trunk works (modulo CHANGES) - +1: covener, druggeri, jim - *) mod_log_config: Add new format flag for requestion duration in milliseconds trunk patch: http://svn.apache.org/r1675533 2.4.x patch: trunk works (modulo CHANGES) diff --git a/modules/mappers/mod_dir.c b/modules/mappers/mod_dir.c index 542236b54f..0e8ab55f01 100644 --- a/modules/mappers/mod_dir.c +++ b/modules/mappers/mod_dir.c @@ -383,8 +383,15 @@ static int fixup_dir(request_rec *r) static int dir_fixups(request_rec *r) { if (r->finfo.filetype == APR_DIR) { - /* serve up a directory */ - return fixup_dir(r); + if (fixup_dir(r) == OK) { + return OK; + } + /* we're running between mod_rewrites fixup and its internal redirect handler, step aside */ + if (!strcmp(r->handler, REWRITE_REDIRECT_HANDLER_NAME)) { + return DECLINED; + } + + return fixup_dflt(r); } else if ((r->finfo.filetype == APR_NOFILE) && (r->handler == NULL)) { /* No handler and nothing in the filesystem - use fallback */