On Wed, 29 Oct 2008 15:29:18 -0400 Michael wrote: > So what's going on here. Shouldn't the 2 requests (/foo > and /foo/index.pl) be treated exactly the same?
/foo is much different than /foo/index.pl because /foo is handled by mod_dir (http://httpd.apache.org/docs/2.0/mod/mod_dir.html). First, the client must submit the request with a trailing slash, as in '/foo/'. This is done by returning a 301 redirect (mod_dir). Then, the redirected (canonical) request comes in and mod_dir starts looking for your directory index file. Each potential index file is probed via an Apache sub-request. Your cleanup handler will get called for each of these sub-requests, and then again on the initial request. You may find everything is "logical" if you put this at the top of your cleanup handler: return Apache2::Const::OK unless $r->is_initial_req;