blob: ebb4e589f76427fe0deb6e391256c97134f3972a [file] [log] [blame]
package Apache::RedirectLogFix;
use Apache::Constants qw(OK DECLINED REDIRECT);
sub handler {
my $r = shift->last;
return DECLINED unless $r->handler && ($r->handler eq "perl-script");
if(my $loc = $r->header_out("Location")) {
if($r->status == 200 and substr($loc, 0, 1) ne "/") {
$r->status(REDIRECT);
return OK
}
}
return DECLINED;
}
1;
__END__
=head1 NAME
Apache::RedirectLogFix - Properly set redirect status for loggers
=head1 SYNOPSIS
PerlLogHandler Apache::RedirectLogFix
=head1 DESCRIPTION
Due the nature of how mod_perl handles redirects, the status code
is not properly logged. This module works around that bug until
mod_perl can deal with this.