You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by je...@apache.org on 2001/11/13 06:10:24 UTC

cvs commit: httpd-2.0/modules/mappers mod_dir.c

jerenkrantz    01/11/12 21:10:24

  Modified:    .        STATUS
               docs/conf httpd-std.conf
               modules/mappers mod_dir.c
  Log:
  Resolve the mod_dir overaggressive redirection problem seen with non-GET
  requests for WebFolders.
  Reviewed by:	Greg Stein
  
  Revision  Changes    Path
  1.329     +1 -9      httpd-2.0/STATUS
  
  Index: STATUS
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/STATUS,v
  retrieving revision 1.328
  retrieving revision 1.329
  diff -u -r1.328 -r1.329
  --- STATUS	2001/11/13 05:04:24	1.328
  +++ STATUS	2001/11/13 05:10:24	1.329
  @@ -1,5 +1,5 @@
   APACHE 2.0 STATUS:						-*-text-*-
  -Last modified at [$Date: 2001/11/13 05:04:24 $]
  +Last modified at [$Date: 2001/11/13 05:10:24 $]
   
   Release:
   
  @@ -62,14 +62,6 @@
         before or after the Add...Filter(s) which are ordered by sequence of
         filename extensions.  Add...FilterByType will add to this quandry.
         Some sort of resolution needs to be proposed, 
  -
  -    * mod_dir should normally redirect ALL directory requests which do
  -      not include a trailing slash on the URI. However, if a "notes"
  -      flag is set (say, via BrowserMatch), this behavior will be
  -      disabled for non-GET requests.
  -        Status: Greg volunteers
  -        MsgId: <20...@lyra.org>
  -        MsgId: <3A...@Golux.Com>
   
       * mod_negotiation needs a new option or directive, something like
         ForceLanguagePriority, to fall back to the LanguagePriority
  
  
  
  1.64      +8 -0      httpd-2.0/docs/conf/httpd-std.conf
  
  Index: httpd-std.conf
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/docs/conf/httpd-std.conf,v
  retrieving revision 1.63
  retrieving revision 1.64
  diff -u -r1.63 -r1.64
  --- httpd-std.conf	2001/11/08 22:31:28	1.63
  +++ httpd-std.conf	2001/11/13 05:10:24	1.64
  @@ -903,6 +903,14 @@
   BrowserMatch "JDK/1\.0" force-response-1.0
   
   #
  +# The following directive disables redirects on non-GET requests for
  +# a directory that does not include the trailing slash.  This fixes a 
  +# problem with Microsoft WebFolders which does not appropriately handle 
  +# redirects for folders with DAV methods.
  +#
  +#BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
  +
  +#
   # Allow server status reports, with the URL of http://servername/server-status
   # Change the ".your_domain.com" to match your domain to enable.
   #
  
  
  
  1.35      +6 -3      httpd-2.0/modules/mappers/mod_dir.c
  
  Index: mod_dir.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/mappers/mod_dir.c,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- mod_dir.c	2001/08/23 21:05:42	1.34
  +++ mod_dir.c	2001/11/13 05:10:24	1.35
  @@ -118,9 +118,12 @@
   
   static int fixup_dir(request_rec *r)
   {
  -    /* only (potentially) redirect for GET requests against directories */
  -    if (r->method_number != M_GET || r->finfo.filetype != APR_DIR) {
  -	return DECLINED;
  +    /* only redirect for requests against directories or when we have
  +     * a note that says that this browser can not handle redirs on
  +     * non-GET requests (such as Microsoft's WebFolders). */
  +    if (r->finfo.filetype != APR_DIR || (r->method_number != M_GET && 
  +        apr_table_get(r->subprocess_env, "redirect-carefully"))) {
  +	    return DECLINED;
       }
   
       if (r->uri[0] == '\0' || r->uri[strlen(r->uri) - 1] != '/') {