httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joshua Slive <>
Subject Re: [users@httpd] invisible CGI invocation
Date Sat, 07 May 2005 23:57:20 GMT
On 5/6/05, Eric S. Johansson <> wrote:
> I'm currently using 404 error handling to achieve this but what I'm
> looking to do is invoke multiple CGI programs depending on the base URL
> and everything after the base URL is passed to the CGI.  For example:
> base URL
> anything containing the base URL invokes the CGI program
> would invokes the base URL associated CGI program and pass the relative
> URL /foo/rat to the CGI program.  Currently I do this with an error
> document hack.  Works well just that every reference creates a 404 entry
> in the log.
> but if I was to associate a different CGI with a different base URL but
> in the same hierarchy:
> and any URL containing that base invokes the alternative CGI as well as
> passing the relative URL to CGI program.
> I'm making it work now with <directory> and ErrorDocument handlers but
> it does seem like an awful hack.  I have tried using index.cgi but
> either I'm doing something wrong and it is not being invoked or it isn't
> right for this problem.

This could be done in various ways, but given the potential
complexity, you'll probably want to invest the time to learn
mod_rewrite.  The basic config you discussed above would look
something like:

RewriteEngine On
RewriteRule ^/alternative(.*) /full/path/to/alternative.cgi$1 [L]
RewriteRule ^/(.*) /full/path/to/regular.cgi/$1

A few notes:
- You'll probably need to configure those CGIs using AddHandler and
Options ExecCGI rather than ScriptAlias.
- This will really catch *every* request, including .gif/.jpg/.pdf/etc
- You'll surely need to invest time in reading the mod_rewrite docs
and investigating the RewriteLog if you want to use this.


The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:> for more info.
To unsubscribe, e-mail:
   "   from the digest:
For additional commands, e-mail:

View raw message