You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Andy Buckley <an...@durham.ac.uk> on 2006/06/29 15:09:53 UTC

[users@httpd] SetOutputFilter doesn't work in s?

Hi,

(Before I begin: I sent two messages on a similar topic to this a couple 
of weeks ago but got no reply: can someone please give me some feedback 
on whether I should report this issue as a bug or if it is my fault?)

I have a long-standing problem with getting Apache 2 output filters to
work on a per-<Location> basis. As far as I can tell, the
SetOutputFilter directive either doesn't work in <Location> blocks, or
is quite unpredictable in that context. I sent a test configuration in a 
previous email but recieved no response, so I've produced a simpler 
configuration and tested it on a different system, with the same 
results. Here's the configuration fragment:

<VirtualHost 80.68.95.15:80>
     ServerAdmin webmaster@insectnation.org
     DocumentRoot /www/filtertest
     ServerName test.insectnation.org

     #SetOutputFilter a;b

     <Location />
         Options Indexes FollowSymLinks MultiViews ExecCGI
         AllowOverride None
         Order allow,deny
         Allow from all
         DirectoryIndex index
     </Location>

     ExtFilterDefine a mode=output intype=text/html outtype=text/html
cmd="/bin/sed -e s/foo/bar/g"
     ExtFilterDefine b mode=output intype=text/html outtype=text/html
cmd="/bin/sed -e s/bing/boom/g"
     <Location /a>
         SetOutputFilter a
     </Location>
     <Location /b>
         SetOutputFilter b
         #Order deny,allow
         #Deny from all
     </Location>
</VirtualHost>

The results of using this configuration are as follows:

   * The sed replacements take place neither in test.insectnation.org/a
or test.insectnation.org/b
   * If the Location /b access is denied (by uncommenting the Order and
Deny statements), this is correctly reflected in the browser behaviour
   * If the SetOutputFilter at VirtualHost level (i.e not in any
Location blocks) is uncommented, the sed replacements both take place
as expected

So, the problem is not the Location matching because the access denial
works as expected: there seems to be some problem specifically with
SetOutputFilter used on a Location basis. This is observed using Apache
2.0.55 as packaged in Ubuntu Dapper:

andy@dirac:~$ apache2 -v
Server version: Apache/2.0.55
Server built:   May 29 2006 01:52:53

I've also observed the same behaviour in Scientific Linux 4.x. Can
anyone offer any suggestions / try this config for themselves and
comment. If it's a genuine problem then it should be reported as a bug,
but I'm not aware of any independent confirmations. Some assistance, please?

Thanks!
Andy


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org