X-Git-Url: http://www.dolda2000.com/gitweb/?p=ashd.git;a=blobdiff_plain;f=doc%2Fdirplex.doc;h=fce3565953439730bb3b8de7b758fd309328f0ee;hp=362a5d784a87a18abb5571b662f405c6c22978f9;hb=edcd094e7e9c1f018f0664f78cf7d6c625e1f476;hpb=16c2bec346ae486bd09d0b18ab276b4c89005cad diff --git a/doc/dirplex.doc b/doc/dirplex.doc index 362a5d7..fce3565 100644 --- a/doc/dirplex.doc +++ b/doc/dirplex.doc @@ -49,16 +49,20 @@ Mapping URLs into physical files is an iterative procedure, each step looking in one single physical directory, starting with 'DIR'. For each step, a path element is stripped off the beginning of the rest string and examined, the path element being either the leading part of -the rest string up until the first slash, or the entire rest string if -it contains no slashes. If the rest string is empty, the directory -being examined is considered the result of the mapping. Otherwise, any -escape sequences in the path element under consideration are unescaped -before examining it. +the rest string up until (but not including) the first slash, or the +entire rest string if it contains no slashes. If the rest string is +empty, the directory being examined is considered the result of the +mapping. Otherwise, any escape sequences in the path element under +consideration are unescaped before examining it. If the path element names a directory in the current directory, the -procedure continues in that directory. If it names a file, that file -is considered the result of the mapping (even if the rest string has -not been exhausted yet). +procedure continues in that directory, unless there is nothing left of +the rest string, in which case *dirplex* responds with a HTTP 301 +redirect to the same URL, but ending with a slash. Otherwise, the +remaining rest string begins with a slash, which is stripped off +before continuing. If the path element names a file, that file is +considered the result of the mapping (even if the rest string has not +been exhausted yet). If the path element does not name anything in the directory under consideration, but contains no dots, then the directory is searched @@ -220,11 +224,13 @@ The following rules are recognized: *pathname* 'PATTERN'...:: - Matches if the entire path (relative as considered from the - root directory being served) of the file under consideration + Matches if the entire path of the file under consideration matches any of the 'PATTERNs'. A 'PATTERN' is an ordinary glob pattern, except that slashes are not matched by wildcards. See - *fnmatch*(3) for more information. + *fnmatch*(3) for more information. If a *pathname* rule is + specified in a `.htrc` file, the path will be examined as + relative to the directory containing the `.htrc` file, rather + than to the root directory being served. *default*:: @@ -257,6 +263,22 @@ following actions are recognized: by a *fchild* stanza. This action exists mostly for convenience. +A *match* stanza may also contain any number of the following, +optional directives: + +*set* 'HEADER' 'VALUE':: + + If the *match* stanza is selected as the match for a file, the + named HTTP 'HEADER' in the request is set to 'VALUE' before + passing the request on to the specified handler. + +*xset* 'HEADER' 'VALUE':: + + *xset* does exactly the same thing as *set*, except the + 'HEADER' is automatically prepended with the `X-Ash-` + prefix. The intention is only to make configuration files + look nicer in this very common case. + 404 RESPONSES ------------- @@ -287,9 +309,13 @@ EXAMPLES The *sendfile*(1) program can be used to serve HTML files as follows. -------- +fchild send + exec sendfile + match filename *.html - fork sendfile -c text/html + xset content-type text/html + handler send -------- Assuming the PHP CGI interpreter is installed on the system, PHP