Mod setenv » History » Revision 16

« Previous | Revision 16/30 (diff) | Next »
gstrauss, 2019-05-04 22:30

Conditional Request Headers

Module: mod_setenv


The setenv module allows influencing the environment external applications are spawned in and the response headers the server sends to the clients.

Note: mod_setenv needs to be listed prior to mod_redirect in the server.modules list in lighttpd.conf so that mod_setenv can set headers prior to the redirect. (Listing modules alphabetically is a common mistake. e.g. #2946)

Automatic Decompression

If you have a lot text-files compressed with gzip on disk and want that the browser is decompressing them on retrieval you can use setenv to inject the Content-Encoding header:

  $HTTP["url"] =~ "(README|ChangeLog|\.txt)\.gz$" {
    setenv.add-response-header  = ( "Content-Encoding" => "gzip")
    mimetype.assign = ("" => "text/plain" )


Adds a value to the process environment (aka environment variables) that is passed to the external applications:

    setenv.add-environment = ( 
      "TRAC_ENV" => "lighttpd",
      "RAILS_ENV" => "production" 

Adds a header to the HTTP response sent to the client:

    setenv.add-response-header = (
      "Content-Encoding" => "gzip" 

Adds a header to the HTTP request that was received from the client:

    setenv.add-request-header = (
      "X-Proxy" =>

setenv.set-request-header (since 1.4.46)
setenv.set-response-header (since 1.4.46)
setenv.set-environment (since 1.4.46)
These directives set the given values, rather than appending the given values to the headers or environment. These directives take precedence over the setenv.add-* counterparts. Set a blank value for request or response header to remove the header.

Updated by gstrauss about 4 years ago · 16 revisions