


Stage(3)       User Contributed Perl Documentation       Stage(3)


NNNNAAAAMMMMEEEE
       Apache::Stage - Manage A Staging Directory

SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
         <Location /STAGE>
           # this location is served by normal apache. It's recommended to
           # restrict access to this location to registered authors of this
           # site, but a restriction isn't necessary
           ErrorDocument 403 /stage-redir
           ErrorDocument 404 /stage-redir
         </Location>

         <Location /stage-redir>
           # the name of this location must match the ErrorDocument redirects
           # above

           # PerlSetVar apache_stage_regex " ^ (/STAGE/[^/]*) (.*) $ "

           # This regex has to split a staged URI into two parts. It is
           # evaluated with the /ox switch in effect, so this will NOT be a
           # per-directory variable. The first part will be thrown away and
           # just the second part will be served if the original URI cannot
           # be accessed. In case of 301 and 302 redirects the first part
           # will be prepended again. The default regex is defined as above
           # which means that URIS will be split into "/STAGE/anyuser" and
           # the rest.

           SetHandler perl-script
           PerlHandler Apache::Stage
           Options ExecCGI

         </Location>


DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
       A staging place is a place where an author of an HTML
       document checks the look and feel of a document before
       it's uploaded to the final location. A staging place
       doesn't need to be a separate server, nor need it be a
       mirror of the "real" tree, and not even a tree of symbolic
       links. A sparse directory tree that holds nothing but the
       staged files will do.

       Apache::Stage implements a staging directory that needs a
       minimum of space.  Per default the path for the per-user
       staging directory is hardcoded as

         /STAGE/any-user-name

       The code cares for proper internal and external redirects
       for any documents that are not in the stage directory
       tree. This means that all graphics are displayed as they
       will be later after the staged files will have been
       published. The following table describes what has been



16/Oct/97              perl 5.004, patch 04                     1





Stage(3)       User Contributed Perl Documentation       Stage(3)


       tested:

        Location              Redirect to       Comment

        /STAGE/u1/            /                 Homepage. Internal Redirect.

        /STAGE/u2/dir1        /dir1/            Really /dir1/index.html

        /STAGE/u3/dir2        /dir2/            Directory has no index.html
                                                Options Indexes is off, thus
                                                "Forbidden"

        /STAGE/u4/dir2/foo    /dir2/foo         Internal redirect.

        /STAGE/u5/bar         -                 Exists really, no redirect
                                                necessary

        /STAGE/u6             -                 Fails unless location exists

       The entries described in SYNOPSIS in the access.conf or an
       equivalent place define the name of the staging directory,
       the name of an internal location that catches the
       exception when a document is not in the staging directory,
       and the regular expression that transforms the staging URI
       into the corresponding public URI.

       With this setup only ErrorDocument 403 and 404 will be
       served by Apache::Stage. If you need coexistence with
       different ErrorDocument handlers, you will either have to
       disable them for /STAGE or integrate the code of
       Apache::Stage into an if/else branch based on the path.

AAAAUUUUTTTTHHHHOOOORRRR
       Andreas Knig <koenig@kulturbox.de>























16/Oct/97              perl 5.004, patch 04                     2


