Apache Reference: mod_rewrite, RewriteMap

RewriteMap

Rewrite Map
Syntax: RewriteMap map-name map-type:A
Example: RewriteMap user-to-host txt:conf/u2h
Since: Apache 1.2

The RewriteMap directive defines a rewriting map that can be used inside rule substitution strings by the mapping functions so as to insert/substitute fields through a key lookup. Various types of sources of this lookup can be used. The map-name is used to specify a mapping function for the substitution strings of a rewriting rule via ${map-name:lookup-key[default-value]} constructs. When such a construct occurs the map, map-name is consulted and the key lookup-key is looked up. If the key is found, the looked-up value is substituted for the construct. If the key is not found, then the default-value or the empty string (if no default-value was specified) is used.

The following combinations for map-type and map-source can be used: Standard Plain Text (map-type: txt, map-source: UNIX file path to valid regular text file); Randomized Plain Text (map-type: rnd, map-source: UNIX file path to valid regular text file); Hash File (map-type: dbm, map-source: UNIX file system path to valid regular NDBM file); Internal Function (map-type: int, map-source: toupper, tolower, esca==pe, or unescape); and External Rewriting Program (map-type: prg, map-source: UNIX file system path to valid regular executable).

The RewriteMap directive can occur multiple times. Keep in mind that while you cannot declare a rewriting map in a per-directory context, it is possible to use it in a per-directory context.