diff --git a/modules/http/http_request.c b/modules/http/http_request.c index 8c8584fdfa..d5de0a676f 100644 --- a/modules/http/http_request.c +++ b/modules/http/http_request.c @@ -569,6 +569,7 @@ AP_DECLARE(void) ap_internal_fast_redirect(request_rec *rr, request_rec *r) r->uri = rr->uri; r->args = rr->args; r->filename = rr->filename; + r->canonical_filename = rr->canonical_filename; r->handler = rr->handler; r->content_type = rr->content_type; r->content_encoding = rr->content_encoding; diff --git a/modules/mappers/mod_dir.c b/modules/mappers/mod_dir.c index 13ff29abbe..6097e0a8cb 100644 --- a/modules/mappers/mod_dir.c +++ b/modules/mappers/mod_dir.c @@ -161,7 +161,11 @@ static int handle_dir(request_rec *r) */ if (r->filename[strlen(r->filename) - 1] != '/') { + if (r->filename != r->canonical_filename) + r->canonical_filename = NULL; r->filename = apr_pstrcat(r->pool, r->filename, "/", NULL); + if (r->canonical_filename) + r->canonical_filename = r->filename; } if (d->index_names) {