martin      99/09/23 12:03:08

  Modified:    src/modules/standard mod_speling.c
  Log:
  Fix for previous mod_speling redirection fix:
  when sending the escaped redirection, mod_speling must preserve
  the query suffix (especially, the '?') unescaped.
  
  Revision  Changes    Path
  1.33      +6 -6      apache-1.3/src/modules/standard/mod_speling.c
  
  Index: mod_speling.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_speling.c,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- mod_speling.c     1999/09/23 18:51:54     1.32
  +++ mod_speling.c     1999/09/23 19:03:06     1.33
  @@ -408,14 +408,14 @@
            && (candidates->nelts == 1
                || variant[0].quality != variant[1].quality)) {
   
  -            nuri = ap_pstrcat(r->pool, url, variant[0].name, r->path_info,
  -                           r->parsed_uri.query ? "?" : "",
  -                           r->parsed_uri.query ? r->parsed_uri.query : "",
  -                           NULL);
  +            nuri = ap_escape_uri(r->pool, ap_pstrcat(r->pool, url,
  +                                                  variant[0].name,
  +                                                  r->path_info, NULL));
  +         if (r->parsed_uri.query)
  +             nuri = ap_pstrcat(r->pool, nuri, "?", r->parsed_uri.query, 
NULL);
   
               ap_table_setn(r->headers_out, "Location",
  -                       ap_escape_uri(r->pool,
  -                                     ap_construct_url(r->pool, nuri, r)));
  +                       ap_construct_url(r->pool, nuri, r));
   
               ap_log_rerror(APLOG_MARK, APLOG_NOERRNO | APLOG_INFO, r,
                         ref ? "Fixed spelling: %s to %s from %s"
  
  
  

Reply via email to