You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by co...@apache.org on 2016/02/29 14:48:51 UTC
svn commit: r1732896 - /httpd/httpd/trunk/modules/mappers/mod_rewrite.c
Author: covener
Date: Mon Feb 29 13:48:50 2016
New Revision: 1732896
URL: http://svn.apache.org/viewvc?rev=1732896&view=rev
Log:
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
Modified:
httpd/httpd/trunk/modules/mappers/mod_rewrite.c
Modified: httpd/httpd/trunk/modules/mappers/mod_rewrite.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mappers/mod_rewrite.c?rev=1732896&r1=1732895&r2=1732896&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/mappers/mod_rewrite.c (original)
+++ httpd/httpd/trunk/modules/mappers/mod_rewrite.c Mon Feb 29 13:48:50 2016
@@ -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));