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 2014/01/13 02:51:59 UTC

svn commit: r1557641 - in /httpd/httpd/trunk: CHANGES include/ap_mmn.h modules/mappers/mod_dir.c modules/mappers/mod_rewrite.c modules/mappers/mod_rewrite.h

Author: covener
Date: Mon Jan 13 01:51:58 2014
New Revision: 1557641

URL: http://svn.apache.org/r1557641
Log:
don't search for directory indexes/directoryslashes if a URL is in the
middle of being rewritten [in per-dir context]. PR53929

Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/include/ap_mmn.h
    httpd/httpd/trunk/modules/mappers/mod_dir.c
    httpd/httpd/trunk/modules/mappers/mod_rewrite.c
    httpd/httpd/trunk/modules/mappers/mod_rewrite.h

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1557641&r1=1557640&r2=1557641&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Mon Jan 13 01:51:58 2014
@@ -2,6 +2,9 @@
 Changes with Apache 2.5.0
 
 
+  *) mod_dir: Don't search for a DirectoryIndex or DirectorySlash on a URL
+     that was just rewritten by mod_rewrite. PR53929. [Eric Covener]
+
   *) mod_dir: Add DirectoryCheckHandler to allow a 2.2-like behavior, skipping 
      execution when a handler is already set. PR53929. [Eric Covener]
 

Modified: httpd/httpd/trunk/include/ap_mmn.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/include/ap_mmn.h?rev=1557641&r1=1557640&r2=1557641&view=diff
==============================================================================
--- httpd/httpd/trunk/include/ap_mmn.h (original)
+++ httpd/httpd/trunk/include/ap_mmn.h Mon Jan 13 01:51:58 2014
@@ -445,6 +445,7 @@
  * 20131112.1 (2.5.0-dev)  Add suspend_connection and resume_connection hooks
  * 20131112.2 (2.5.0-dev)  Add ap_regname
  * 20131230.0 (2.5.0-dev)  cl_head_zero & expect_strict added to server_config
+ * 20131230.1 (2.5.0-dev)  REDIRECT_HANDLER_NAME in mod_rewrite.h
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503235UL /* "AP25" */
@@ -452,7 +453,7 @@
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
 #define MODULE_MAGIC_NUMBER_MAJOR 20131230
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 0                  /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 1                  /* 0...n */
 
 /**
  * Determine if the server's current MODULE_MAGIC_NUMBER is at least a

Modified: httpd/httpd/trunk/modules/mappers/mod_dir.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mappers/mod_dir.c?rev=1557641&r1=1557640&r2=1557641&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/mappers/mod_dir.c (original)
+++ httpd/httpd/trunk/modules/mappers/mod_dir.c Mon Jan 13 01:51:58 2014
@@ -29,6 +29,7 @@
 #include "http_log.h"
 #include "http_main.h"
 #include "util_script.h"
+#include "mod_rewrite.h"
 
 module AP_MODULE_DECLARE_DATA dir_module;
 
@@ -277,6 +278,11 @@ static int fixup_dir(request_rec *r)
         return DECLINED;
     }
 
+    /* we're running between mod_rewrites fixup and its internal redirect handler, step aside */
+    if (!strcmp(r->handler, REDIRECT_HANDLER_NAME)) { 
+        return DECLINED;
+    }
+
     if (d->index_names) {
         names_ptr = (char **)d->index_names->elts;
         num_names = d->index_names->nelts;

Modified: httpd/httpd/trunk/modules/mappers/mod_rewrite.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mappers/mod_rewrite.c?rev=1557641&r1=1557640&r2=1557641&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/mappers/mod_rewrite.c (original)
+++ httpd/httpd/trunk/modules/mappers/mod_rewrite.c Mon Jan 13 01:51:58 2014
@@ -5027,7 +5027,7 @@ static int hook_fixup(request_rec *r)
             rewritelog((r, 1, dconf->directory, "internal redirect with %s "
                         "[INTERNAL REDIRECT]", r->filename));
             r->filename = apr_pstrcat(r->pool, "redirect:", r->filename, NULL);
-            r->handler = "redirect-handler";
+            r->handler = REDIRECT_HANDLER_NAME;
             return OK;
         }
     }
@@ -5073,7 +5073,7 @@ static int hook_mimetype(request_rec *r)
  */
 static int handler_redirect(request_rec *r)
 {
-    if (strcmp(r->handler, "redirect-handler")) {
+    if (strcmp(r->handler, REDIRECT_HANDLER_NAME)) {
         return DECLINED;
     }
 

Modified: httpd/httpd/trunk/modules/mappers/mod_rewrite.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mappers/mod_rewrite.h?rev=1557641&r1=1557640&r2=1557641&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/mappers/mod_rewrite.h (original)
+++ httpd/httpd/trunk/modules/mappers/mod_rewrite.h Mon Jan 13 01:51:58 2014
@@ -29,6 +29,8 @@
 #include "apr_optional.h"
 #include "httpd.h"
 
+#define REDIRECT_HANDLER_NAME "redirect-handler"
+
 /* rewrite map function prototype */
 typedef char *(rewrite_mapfunc_t)(request_rec *r, char *key);
 



Re: svn commit: r1557641 - in /httpd/httpd/trunk: CHANGES include/ap_mmn.h modules/mappers/mod_dir.c modules/mappers/mod_rewrite.c modules/mappers/mod_rewrite.h

Posted by Eric Covener <co...@gmail.com>.
r1559394 -- thanks for review

On Mon, Jan 13, 2014 at 2:41 PM, Eric Covener <co...@gmail.com> wrote:
>>
>> Should it be prefixed (e.g. with REWRITE_)?
>>
>> And maybe the handler name, too? (this one trunk only).
>
> makes sense, will revisit soon.



-- 
Eric Covener
covener@gmail.com

Re: svn commit: r1557641 - in /httpd/httpd/trunk: CHANGES include/ap_mmn.h modules/mappers/mod_dir.c modules/mappers/mod_rewrite.c modules/mappers/mod_rewrite.h

Posted by Eric Covener <co...@gmail.com>.
>
> Should it be prefixed (e.g. with REWRITE_)?
>
> And maybe the handler name, too? (this one trunk only).

makes sense, will revisit soon.

Re: svn commit: r1557641 - in /httpd/httpd/trunk: CHANGES include/ap_mmn.h modules/mappers/mod_dir.c modules/mappers/mod_rewrite.c modules/mappers/mod_rewrite.h

Posted by André Malo <nd...@perlig.de>.
* covener@apache.org wrote:

> Author: covener
> Date: Mon Jan 13 01:51:58 2014
> New Revision: 1557641
>
> URL: http://svn.apache.org/r1557641
> Log:
> don't search for directory indexes/directoryslashes if a URL is in the
> middle of being rewritten [in per-dir context]. PR53929
>
>
> Modified: httpd/httpd/trunk/modules/mappers/mod_rewrite.h
> URL:
> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mappers/mod_rewrit
>e.h?rev=1557641&r1=1557640&r2=1557641&view=diff
> =========================================================================
>===== --- httpd/httpd/trunk/modules/mappers/mod_rewrite.h (original)
> +++ httpd/httpd/trunk/modules/mappers/mod_rewrite.h Mon Jan 13 01:51:58
> 2014 @@ -29,6 +29,8 @@
>  #include "apr_optional.h"
>  #include "httpd.h"
>
> +#define REDIRECT_HANDLER_NAME "redirect-handler"
> +
>  /* rewrite map function prototype */
>  typedef char *(rewrite_mapfunc_t)(request_rec *r, char *key);

Should it be prefixed (e.g. with REWRITE_)?

And maybe the handler name, too? (this one trunk only).

nd
-- 
Wer sein Wissen nicht teilen will, besitzt wahrscheinlich zu wenig davon.
  -- Unbekannt