Correct me if I'm wrong, but don't you need to do this: PerlPassEnv TE
in your httpd.conf? On Mon, Apr 12, 2010 at 11:44 AM, Chris Datfung <chris.datf...@gmail.com> wrote: > I want to use mod-perl to edit server responses under certain conditions. My > plan was to use various modules, like mod-setenvif and mod-security to set > an environment variable and then have mod-perl edit the response body only > run when the environment variable is set. I tried the following test which > was supposed to append 'TEST' to my index.html page: > in the virtual host config I have: > SetEnvIf Request_URI "\.html$" TE=TEST > PerlRequire "/opt/modperl/TE/ST.pm" > PerlOutputFilterHandler TE::ST > the contents of /opt/modperl/TE/ST.pm is: > ====================================================================== > package TE::ST; > use strict; > use warnings; > use Apache2::Filter (); > use Apache2::RequestRec (); > use APR::Table (); > BEGIN { push @INC, "/opt/modperl/"; } > use Apache2::Const -compile => qw(OK); > use constant BUFF_LEN => 1024; > sub handler > { > my $f = shift; > unless ($f->ctx) > { > while ($f->read(my $buffer, BUFF_LEN)) > { > $buffer =~ s/It/Chris/g; > $buffer .= $ENV{"TE"}; > $f->print($buffer); > } > return Apache2::Const::OK; > } > } > 1; > ======================================================================== > The script correctly changes the 'It' in the index.html file to 'Chris' but > I don't see the value of the 'TE' variable in the response body. Can someone > point me to an example of how modperl can access environment variables set > by other apache modules? > Thanks, > - Chris