fielding 96/12/02 07:48:28
Modified: src http_request.c Log: An internal redirect which results in a 304 Not Modified being sent to the client gets logged as a 200, because the final response code of the redirect is not propagated to the request structure that is logged. The logfile then lies about the response status, which is not good for a webmaster trying to diagnose problems or monitor cache hits. Fixed by promoting the internal redirect status. Submitted by: Ben Laurie (with comment mods by Roy Fielding) Reviewed by: Roy Fielding, Rob Hartill Revision Changes Path 1.31 +5 -0 apache/src/http_request.c Index: http_request.c =================================================================== RCS file: /export/home/cvs/apache/src/http_request.c,v retrieving revision 1.30 retrieving revision 1.31 diff -C3 -r1.30 -r1.31 *** http_request.c 1996/12/01 20:28:33 1.30 --- http_request.c 1996/12/02 15:48:26 1.31 *************** *** 1008,1013 **** --- 1008,1018 ---- { request_rec *new = internal_internal_redirect(new_uri, r); process_request_internal (new); + + /* Promote the new redirected request result into r for logging. + * We may need to promote other things, but this one is known. + */ + r->status = new->status; } /* This function is designed for things like actions or CGI scripts, when