Copyright 2001, Darren Tucker. I hereby give permission to use, modify or redistribute this patch under the same terms as Perl itself. # diff -c ReverseProxy.pm.orig ReverseProxy.pm *** ReverseProxy.pm.orig Wed Mar 28 00:50:57 2001 --- ReverseProxy.pm Wed Mar 28 00:51:11 2001 *************** *** 33,38 **** --- 33,39 ---- my $chain = $r->dir_config('ReverseProxyChain'); my $noproxy = $r->dir_config('ReverseProxyNoChain'); + my %rwredir = split(/\s*(?:=>|,)\s*/, $r->dir_config('ReverseProxyRewriteRedirect')); # read config file my $f = gensym(); *************** *** 186,191 **** --- 187,202 ---- $r->status_line($response->code() . ' ' . $response->message()); $response->scan(sub { $r->headers_out->add(@_); }); + + # If RewriteRedirect specified, do global substitution(s) on Location: header + if (%rwredir && $response->header('Location')) { + my $rw; + foreach $rw (keys %rwredir) { + $r->headers_out->{'Location'} =~ s|$rw|$rwredir{$rw}|g; + } + } + + $r->send_http_header(); $first_time=0; } *************** *** 202,207 **** --- 213,227 ---- $r->status_line($response->code() . ' ' . $response->message()); $response->scan(sub { $r->headers_out->add(@_); }); + + # If RewriteRedirect specified, do global substitution(s) on Location: header + if (%rwredir && $response->header('Location')) { + my $rw; + foreach $rw (keys %rwredir) { + $r->headers_out->{'Location'} =~ s|$rw|$rwredir{$rw}|g; + } + } + $r->send_http_header(); $first_time=0; print $response->content();