Re: [users@httpd] invisible CGI invocation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/6/05, Eric S. Johansson <esj@xxxxxxxxxx> 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
> http://www.demo.org/
> 
> anything containing the base URL invokes the CGI program
> 
> http://www.demo.org/foo/rat
> 
> 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:
> 
> http://www.demo.org/alternative/
> 
> 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.

Joshua.

---------------------------------------------------------------------
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@xxxxxxxxxxxxxxxx
   "   from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx



[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux