Allow matching against any arbitrary HTTP header in the configuration file regexps
It should be possible to match against any HTTP header from the config file, rather than being limited to only matching against Host, User-Agent, Referrer and Cookie.
I can think of 3 ways to achieve this:
1. Introduce a new $REQUEST table in the configuration file that allows matching against any header, and leave the Host, User-Agent, Referrer and Cookie options in the $HTTP table for backwards compatibility. This means there are two ways of testing against these 4 headers, which is against the lighttpd spirit of lightness.
2. Introduce $REQUEST as above, and remove the Host, User-Agent, Referrer and Cookie options from $HTTP. This isn't backwards compatible but is the architecturally cleanest option.
3. Treat any string between the brackets in $HTTP that is not recognized as having special meaning to lighttpd as a header name to match against. This has the downside that there is a small risk of current $HTTP options such as "remoteip" conflicting with future HTTP header names. However, it does mean that internally in the code, the Host, User-Agent, Referrer and Cookie options could be removed as special cases without changing their functionality to end users.
NOTE: Implementing this arbitrary header matching would also resolve ticket 1119.
Also available in: Atom