From: Eric Covener Date: Mon, 29 Feb 2016 13:48:50 +0000 (+0000) Subject: revert broken r1724656 which moved the rewrite loop checks X-Git-Tag: 2.5.0-alpha~1996 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dd88a30642b4f86c435f512e1a3e35937a91bdc4;p=apache revert broken r1724656 which moved the rewrite loop checks until after bases had been stripped and added in prep for internal redirect. original issue & regression disussed in PR58854 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1732896 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/mappers/mod_rewrite.c b/modules/mappers/mod_rewrite.c index 1fb4d163f9..f82b4b20c9 100644 --- a/modules/mappers/mod_rewrite.c +++ b/modules/mappers/mod_rewrite.c @@ -5067,6 +5067,19 @@ static int hook_fixup(request_rec *r) return HTTP_BAD_REQUEST; } + /* Check for deadlooping: + * At this point we KNOW that at least one rewriting + * rule was applied, but when the resulting URL is + * the same as the initial URL, we are not allowed to + * use the following internal redirection stuff because + * this would lead to a deadloop. + */ + if (ofilename != NULL && strcmp(r->filename, ofilename) == 0) { + rewritelog((r, 1, dconf->directory, "initial URL equal rewritten" + " URL: %s [IGNORING REWRITE]", r->filename)); + return OK; + } + tmpfilename = r->filename; /* if there is a valid base-URL then substitute @@ -5127,20 +5140,6 @@ static int hook_fixup(request_rec *r) } } - /* Check for deadlooping: - * At this point we KNOW that at least one rewriting - * rule was applied, but when the resulting URL is - * the same as the initial URL, we are not allowed to - * use the following internal redirection stuff because - * this would lead to a deadloop. - */ - if (ofilename != NULL && strcmp(r->filename, ofilename) == 0) { - rewritelog((r, 1, dconf->directory, "initial URL equal rewritten" - " URL: %s [IGNORING REWRITE]", r->filename)); - return OK; - } - - /* now initiate the internal redirect */ rewritelog((r, 1, dconf->directory, "internal redirect with %s " "[INTERNAL REDIRECT]", r->filename));