X-Git-Url: http://www.dolda2000.com/gitweb/?p=ashd.git;a=blobdiff_plain;f=doc%2Fpatplex.doc;fp=doc%2Fpatplex.doc;h=86d6aced27425336b32fd2b5d747595f51d43332;hp=65e2d11bfd79751b8a00ca597e04815d4868ef9a;hb=bcad6b0c48d516ddc920b52f06083ceaa242e1ca;hpb=589987f8218c9aa61d65f582a3b3e1bbd32bda81 diff --git a/doc/patplex.doc b/doc/patplex.doc index 65e2d11..86d6ace 100644 --- a/doc/patplex.doc +++ b/doc/patplex.doc @@ -35,12 +35,16 @@ CONFIGURATION In addition to the 'CONFIGFILE' specified on the command-line, *patplex* also attempts to find and read a global configuration file -called `patplex.rc`, unless the *-N* option is given. It looks in all -directories named by the *PATH* environment variable, appended with -`../etc`. For example, then, if *PATH* is -`/usr/local/bin:/bin:/usr/bin`, the directories `/usr/local/etc`, -`/etc` and `/usr/etc` are searched for `patplex.rc`, in that -order. Only the first file found is used, should there exist several. +called `patplex.rc`, unless the *-N* option is given. It looks in +`$HOME/.ashd/etc`, and then in all directories named by the *PATH* +environment variable, appended with `../etc/ashd`. For example, then, +if *PATH* is `/usr/local/bin:/bin:/usr/bin`, the directories +`$HOME/.ashd/etc`, `/usr/local/etc/ashd`, `/etc/ashd` and +`/usr/etc/ashd` are searched for `patplex.rc`, in that order. Only the +first file found is used, should there exist several. If the given +'CONFIGFILE' contains any slashes, it is opened by that exact +name. Otherwise, it is searched for in the same manner as the global +configuration file. Should the global and the given configuration files conflict, the directives from the given file take precedence. @@ -63,14 +67,15 @@ rules are recognized: matched case-independently. If the *match* stanza as a whole matches and contains no *restpat* line (as described below), the rest string of the request is replaced by the remainder of - the rest string after the portion that was matched by 'REGEX'. + the rest string after the portion that was matched by + 'REGEX'. See also URL UNQUOTING, below. *url* 'REGEX' 'FLAGS':: 'REGEX' must be an extended regular expression. The rule is considered to match if 'REGEX' matches the raw URL of the request. If 'FLAGS' contain the character `i`, 'REGEX' is - matched case-independently. + matched case-independently. See also URL UNQUOTING, below. *method* 'REGEX' 'FLAGS':: @@ -151,6 +156,20 @@ optional lines: If no *match* stanza matches, a 404 response is returned to the client. +URL UNQUOTING +------------- + +If the 'FLAGS' of a *point* or *url* rule contain the character `q`, +then the rule's pattern will be matched against a copy of the input +string where URL percent-escapes have been decoded so that, for +example, the regular expression `^~` will match an input string that +begins with either `~`, `%7E` or `%7e`. + +Even if such percent-escapes were decoded, however, the original +version of the string will be used for any *restpat* expansion, +regardlessly of whether the escapes were unquoted inside or outside +the matched part of the string. + SIGNALS -------