On Wed, 29 Oct 2008 17:51:54 -0400
Michael wrote:

> So "/foo/" goes through some extra steps (lines 2-7) but after that
> it looks the same as "/foo/index.pl" until you hit the die(). Then
> the status for "/foo/index.pl" goes to 500 while the status for
> "/foo" stays at 200.

I tested a PHP script with a syntax error, and I see exactly what you're
seeing. That is, when the PHP script has an error, my log handler still
sees $r->status as 200. So, $r->status is only valid for (or set by)
mod_perl response handlers which know to set it? Does this mean we
have to write an output filter to catch the status code and set
$r->status? Yikes.

Does $r->status_line also report "200"?

From Apache2::RequestRec documentation for $r->status:

"Usually you will set this value indirectly by returning the status
code as the handler’s function result."

But as I stated earlier, this is not enough (in practice)... Sounds
like more and more like a bug, which I believe is what you were
originally stating...