From 57104f62f05cdefda4e4a0650a3e7886c7a37b37 Mon Sep 17 00:00:00 2001 From: Nick Kew Date: Tue, 14 Aug 2007 09:22:15 +0000 Subject: [PATCH] =?utf8?q?mod=5Fnegotiation:=20preserve=20Query=20String?= =?utf8?q?=20in=20resolving=20a=20type=20map=20PR=2033112.=20=20Report=20w?= =?utf8?q?ith=20patch=20by=20J=C3=B8rgen=20Thomsen.=20Attention=20called?= =?utf8?q?=20to=20it=20by=20Per=20Jessen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@565671 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 3 +++ modules/mappers/mod_negotiation.c | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 46f56a1915..e17c0db92f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.3.0 + *) mod_negotiation: preserve Query String in resolving a type map + PR 33112 [Jørgen Thomsen , Nick Kew] + *) mod_deflate: fix content_encoding detection in inflate_out filter when it's not in response headers table. PR 42993 [Nick Kew] diff --git a/modules/mappers/mod_negotiation.c b/modules/mappers/mod_negotiation.c index 3759278b75..3a89dc3f9c 100644 --- a/modules/mappers/mod_negotiation.c +++ b/modules/mappers/mod_negotiation.c @@ -2971,6 +2971,7 @@ static int handle_map_file(request_rec *r) var_rec *best; int res; char *udir; + const char *new_req; if(strcmp(r->handler,MAP_FILE_MAGIC_TYPE) && strcmp(r->handler,"type-map")) return DECLINED; @@ -3061,8 +3062,21 @@ static int handle_map_file(request_rec *r) } udir = ap_make_dirstr_parent(r->pool, r->uri); udir = ap_escape_uri(r->pool, udir); - ap_internal_redirect(apr_pstrcat(r->pool, udir, best->file_name, - r->path_info, NULL), r); + if (r->args) { + if (r->path_info) { + new_req = apr_pstrcat(r->pool, udir, best->file_name, + r->path_info, "?", r->args, NULL); + } + else { + new_req = apr_pstrcat(r->pool, udir, best->file_name, + "?", r->args, NULL); + } + } + else { + new_req = apr_pstrcat(r->pool, udir, best->file_name, + r->path_info, NULL); + } + ap_internal_redirect(new_req, r); return OK; } -- 2.49.0