mirror of
https://github.com/apache/httpd.git
synced 2025-08-07 04:02:58 +03:00
Fix subreqs with non-defined Content-Types being served improperly.
If we do not know a C-T for a subreq, we *must* propogate that non-knowledge upwards to the main request. Previously, if you used a DirectoryIndex with a file without a C-T (say .shtml without AddType), the r->content_type will be kept as httpd/unix-directory when we promoted the subreq in mod_dir. Since there would be no handler on this file, ap_invoke_handler (config.c:355) would set the handler to be httpd/unix-directory (which was the old C-T of the dir). This would then trigger the handler to become httpd/unix-directory. mod_autoindex would then try to serve the request. But, the filename was propogated upwards by mod_dir's DirectoryIndex via internal_fast_redirect - it would then return a 403 trying to generate a mod_autoindex page for a file. Now, we will use ap_default_type() which is correct. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94676 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -422,9 +422,7 @@ AP_DECLARE(void) ap_internal_fast_redirect(request_rec *rr, request_rec *r)
|
||||
r->args = rr->args;
|
||||
r->finfo = rr->finfo;
|
||||
r->handler = rr->handler;
|
||||
if (rr->content_type) {
|
||||
ap_set_content_type(r, rr->content_type);
|
||||
}
|
||||
ap_set_content_type(r, rr->content_type);
|
||||
r->content_encoding = rr->content_encoding;
|
||||
r->content_languages = rr->content_languages;
|
||||
r->per_dir_config = rr->per_dir_config;
|
||||
|
Reference in New Issue
Block a user