start page | rating of books | rating of authors | reviews | copyrights

Book HomeWebmaster in a Nutshell, 3rd EditionSearch this book

19.29. mod_setenvif

The mod_setenvif module sets environment variables based on the client's browser or other information.

BrowserMatch

BrowserMatch regex var[=value] var[=value] ...

[server config]

Sets environment variables based on the client's browser type. If the User-Agent HTTP header matches the regular expression specified by regex, set one or more environment variables as follows:

var
The environment variable is defined and given the value of 1.

!var
The environment variable is deleted.

var=value
The environment variable is set to an initial value.

Here is an example of how to locate various browsers. The first sets compatible if the client is connecting with Versions 2 through 4 of Netscape. The second sets microsoft if Internet Explorer is detected:

BrowserMatch ^Mozilla/[2-4] compatible !microsoft
BrowserMatch MSIE microsoft
BrowserMatchNoCase

BrowserMatchNoCase regex var=value var=value ...

[server config]

Identical to BrowserMatch, except that matching is now case-insensitive. For example, the following would still work to detect Internet Explorer:

BrowserMatch msie microsoft
SetEnvIf

SetEnvIf attribute regex var[=value] var[=value]

[server config]

Sets environment variables based on the attributes of an HTTP request. Some of the more common attributes are:

Remote_Host
The hostname of the client, if known

Remote_Addr
The IP address of the client

Remote_User
The user which is making the request, if known

Request_Method
The name of the HTTP method being used to request information

Request_URI
The latter portion of the URL, after the host information

Referer
The URI of the referring page, if known

For example, the following sets the environment variable SOMEONE_FROM_OREILLY if the remote host resolves to the domain oreilly.com:

SetEnvIf Remote_Host oreilly.com SOMEONE_FROM_OREILLY
SetEnvIfNoCase

SetEnvIfNoCase attribute regex var[=value] var[=value]

[server config]

Identical to SetEnvIf, except that attribute matching is now case-insensitive.



Library Navigation Links

Copyright © 2003 O'Reilly & Associates. All rights reserved.