NAME
    Apache::AddHostPath - Adds some or all of the hostname and port
    to the URI

SYNOPSIS
      # in httpd.conf
      PerlTransHandler Apache::AddHostPath

DESCRIPTION
    This module transforms the requested URI based on the hostname
    and port number from the http request header. It allows you to
    manage an arbitrary number of domains and/or sub-domains all
    pointed to the same document root, but for which you want a
    combination of shared and distinct files.

    Essentially the module implements Apache's URI translation phase
    by attempting to use some or all of the URL hostname and port
    number as the base of the URI. It simply does file and directory
    existence tests on a series of URIs (from most-specific to
    least-specific) and sets the URI to the most specific match.

    If the requested is:

     URL: http://www.alpha.cvsroot.org:8080/index.html
     URI: /index.html

    Apache::AddHostPath would go through the following list of
    possible paths and set the new URI based on the first match
    which passes a -f or -d existence test:

     $docRoot/org/cvsroot/alpha/www/8080/index.html
     $docRoot/org/cvsroot/alpha/www/index.html
     $docRoot/org/cvsroot/alpha/index.html
     $docRoot/org/cvsroot/index.html
     $docRoot/org/index.html
     $docRoot/index.html

    For example if you have three domains cvsroot.org,
    ransommoney.com, and inputsignal.com using the same apache
    instance and DocumentRoot (without using VirtualHosts). If you
    assume that the DocumentRoot contains the following files and
    directories:

     images/
     images/bg.gif
     org/
     org/cvsroot/
     org/cvsroot/images/logo.gif
     com/
     com/images/
     com/images/bg.gif
     com/ransommoney/
     com/ransommoney/images/
     com/ransommoney/images/logo.gif
     com/ransommoney/images/bg.gif
     com/inputsignal/
     com/inputsignal/images/
     com/inputsignal/images/logo.gif

    Apache::AddHostPath would transform the following requested
    URL/URIs as follows:

     Input URL:  http://cvsroot.org/images/bg.gif
     Input URI:  /images/bg.gif
     Output URI: /images/bg.gif

     Input URL:  http://cvsroot.org/images/logo.gif
     Input URI:  /images/logo.gif
     Output URI: /org/cvsroot/images/logo.gif

     Input URL:  http://ransommoney.com/images/bg.gif
     Input URI:  /images/bg.gif
     Output URI: /com/ransommoney/images/bg.gif

     Input URL:  http://inputsignal.com/images/bg.gif
     Input URI:  /images/bg.gif
     Output URI: /com/images/bg.gif

    It also correctly handles extra path info to CGI scripts. For
    example if you add the following files and dirs to the above
    example:

     cgi-bin/
     cgi-bin/magic.pl
     org/cvsroot/cgi-bin/
     org/cvsroot/cgi-bin/magic.pl

    Apache::AddHostPath would transform the following requested
    URL/URIs as follows:

     Input URL: http://cvsroot.org/cgi-bin/magic.pl/param1/param2
     Input URI: /cgi-bin/magic.pl/param1/param2
     Output URI: /org/cvsroot/cgi-bin/magic.pl/param1/param2

     Input URL: http://ransommoney.com/cgi-bin/magic.pl/param1
     Input URI: /cgi-bin/magic.pl/param1
     Output URI: /cgi-bin/magic.pl/param1

    You can debug this URI translation by setting your Apache
    LogLevel to "debug". This will show add messages to your error
    log showing every URI combination tested and which one it ended
    up using.

    This module adds powerful yet simplistic inheritance
    capabilities to a multi-domain server. A number of domains could
    be set to a single flat document root initially. Then individual
    files could be overridden for a hostname, or set of hostnames,
    simply by creating the appropriate directory structures and
    specific files while leaving the rest of the domain untouched.

AUTHOR
    Robert C W Jenks, rjenks@cvsroot.org

SEE ALSO
    perl(1). the mod_perl manpage

COPYRIGHT
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
    published by the Free Software Foundation; either version 2 of
    the License, or (at your option) any later version.

