Index: modules/mappers/mod_rewrite.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/mappers/mod_rewrite.c,v retrieving revision 1.259 diff -u -r1.259 mod_rewrite.c --- modules/mappers/mod_rewrite.c 28 Aug 2004 16:08:21 -0000 1.259 +++ modules/mappers/mod_rewrite.c 9 Sep 2004 17:15:26 -0000 @@ -4479,9 +4479,17 @@ * remember the current filename before rewriting for later check * to prevent deadlooping because of internal redirects * on final URL/filename which can be equal to the inital one. + * also, we'll restore original r->filename if we decline this + * request */ ofilename = r->filename; + if (r->filename == NULL) { + r->filename = apr_pstrdup(r->pool, r->uri); + rewritelog((r, 2, "init rewrite engine with requested uri %s", + r->filename)); + } + /* * now apply the rules ... */ @@ -4627,7 +4635,7 @@ * use the following internal redirection stuff because * this would lead to a deadloop. */ - if (strcmp(r->filename, ofilename) == 0) { + 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; @@ -4680,6 +4688,7 @@ } else { rewritelog((r, 1, dconf->directory, "pass through %s", r->filename)); + r->filename = ofilename; return DECLINED; } }