On Tue, 26 Mar 2002, Jerry Baker wrote: > Jerry Baker wrote: > > > > I just noticed something about this problem. If you request > > /nonexistentfile.html then the error response is sent back with > > text/html, but if you request /nonexistentfile then it still comes back > > as text/plain. > > > > -- > > Jerry Baker > > Not only that. If you request /nonexistentfile.exe, it gets sent back as > application/octet-stream. The ErrorDocument is being returned with > whatever content-type matches the file extension of the requested > document. I doubt many people want to download the ErrorDocument in the > case that they request a non-existent application/octet-stream URI.
yeah - the sub request content type is getting set by negotiation, but it is not being propagated up. i am not sure how this is supposed to take place, but the following patch actually makes the content type set properly in my test cases..... although i don't think its the right fix - isn't that content type supposed to be propagated? i know this stuff is kinda whacky - maybe this sheds some light on the situation. anyways here's the patch Index: modules/mappers/mod_negotiation.c =================================================================== RCS file: /home/cvspublic/httpd-2.0/modules/mappers/mod_negotiation.c,v retrieving revision 1.100 diff -u -r1.100 mod_negotiation.c --- modules/mappers/mod_negotiation.c 20 Mar 2002 17:41:55 -0000 1.100 +++ modules/mappers/mod_negotiation.c 26 Mar 2002 20:54:33 -0000 @@ -942,10 +942,13 @@ } else if (!strncmp(buffer, "content-type:", 13)) { struct accept_rec accept_info; + request_rec *tmp_req; get_entry(neg->pool, &accept_info, body); set_mime_fields(&mime_info, &accept_info); has_content = 1; + for( tmp_req = r; tmp_req != NULL; tmp_req = tmp_req->prev ) + tmp_req->content_type = mime_info.mime_type; } else if (!strncmp(buffer, "content-length:", 15)) { mime_info.bytes = atol(body);