mod_setenvif.html revision 37d54185c36fc14ea39d21c0fcd1ea19b35e9c93
e59faf65ce864fe95dc00f5d52b8323cdbd0608aTimo Sirainen<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen<HTML>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <HEAD>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <TITLE>Apache module mod_setenvif</TITLE>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </HEAD>
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen <BODY
be1ce4990d3e5eda1e80a032e355e41aabc29d6fTimo Sirainen BGCOLOR="#FFFFFF"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen TEXT="#000000"
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen LINK="#0000FF"
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen VLINK="#000080"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen ALINK="#FF0000"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen >
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen<!--#include virtual="header.html" -->
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <H1 ALIGN="CENTER">Module mod_setenvif</H1>
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen <P>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen This module is contained in the <SAMP>mod_setenvif.c</SAMP> file, and
9e808b253bf5c20878fedfb44e4f2273db31da7cTimo Sirainen <STRONG>is</STRONG> compiled in by default. It provides for
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen the ability to set environment variables based upon attributes of the
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen request.
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </P>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <H2>Summary</H2>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <P>
ccd4a548556a72a74a8183fa46cdd616dceae456Timo Sirainen The <SAMP>mod_setenvif</SAMP> module allows you to set environment
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen variables according to whether different aspects of the request match
8c0e314c57b91253c8b2c3491e162967bd3a2cd3Timo Sirainen regular expressions you specify. These envariables can be used by
8c0e314c57b91253c8b2c3491e162967bd3a2cd3Timo Sirainen other parts of the server to make decisions about actions to be taken.
8c0e314c57b91253c8b2c3491e162967bd3a2cd3Timo Sirainen </P>
08a0b7b0d0444875001847ef2b1b7b76122620abTimo Sirainen <p>The directives are considered in the order they appear in the
e50c1eb31159d8ccc116d8fb487a5e231d2033a1Timo Sirainen configuration files. So more complex sequences can be used, such
e50c1eb31159d8ccc116d8fb487a5e231d2033a1Timo Sirainen as this example, which sets <code>netscape</code> if the browser
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen is mozilla but not MSIE.
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <blockquote><pre>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen BrowserMatch ^Mozilla netscape
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen BrowserMatch MSIE !netscape
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </pre></blockquote>
08a0b7b0d0444875001847ef2b1b7b76122620abTimo Sirainen </p>
08a0b7b0d0444875001847ef2b1b7b76122620abTimo Sirainen
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <H2>Directives</H2>
08a0b7b0d0444875001847ef2b1b7b76122620abTimo Sirainen <UL>
08a0b7b0d0444875001847ef2b1b7b76122620abTimo Sirainen <LI><A HREF="#BrowserMatch">BrowserMatch</A>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </LI>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <LI><A HREF="#BrowserMatchNoCase">BrowserMatchNoCase</A>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </LI>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <LI><A HREF="#SetEnvIf">SetEnvIf</A>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </LI>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <LI><A HREF="#SetEnvIfNoCase">SetEnvIfNoCase</A>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </LI>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </UL>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <HR> <!-- the HR is part of the directive description -->
14f172fb8fc5585ec450ae3c233c676a033e5324Timo Sirainen <H2><A NAME="BrowserMatch">The <SAMP>BrowserMatch</SAMP> Directive</A></H2>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <P>
04870054863757edf048c81dcce3c5e7dec453cdTimo Sirainen <A
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen HREF="directive-dict.html#Syntax"
14f172fb8fc5585ec450ae3c233c676a033e5324Timo Sirainen REL="Help"
14f172fb8fc5585ec450ae3c233c676a033e5324Timo Sirainen ><STRONG>Syntax:</STRONG></A> BrowserMatch <EM>regex envar[=value] [...]</EM>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <BR>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <A
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen HREF="directive-dict.html#Default"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen REL="Help"
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen ><STRONG>Default:</STRONG></A> <EM>none</EM>
7bafda1813454621e03615e83d55bccfa7cc56bdTimo Sirainen <BR>
7bafda1813454621e03615e83d55bccfa7cc56bdTimo Sirainen <A
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen HREF="directive-dict.html#Context"
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen REL="Help"
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen ><STRONG>Context:</STRONG></A> server config
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <BR>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <A
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen HREF="directive-dict.html#Override"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen REL="Help"
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen ><STRONG>Override:</STRONG></A> <EM>none</EM>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <BR>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <A
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen HREF="directive-dict.html#Status"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen REL="Help"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen ><STRONG>Status:</STRONG></A> Base
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen <BR>
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen <A
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen HREF="directive-dict.html#Module"
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen REL="Help"
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen ><STRONG>Module:</STRONG></A> mod_setenvif
9e808b253bf5c20878fedfb44e4f2273db31da7cTimo Sirainen <BR>
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen <A
9e808b253bf5c20878fedfb44e4f2273db31da7cTimo Sirainen HREF="directive-dict.html#Compatibility"
e7ca5f820d6a1a8fe549a2966ac707a60e055ef4Timo Sirainen REL="Help"
7dc2c953377fdf3f98e392c2eb7c9caa3dfc5d4fTimo Sirainen ><STRONG>Compatibility:</STRONG></A> Apache 1.2 and above
9e808b253bf5c20878fedfb44e4f2273db31da7cTimo Sirainen </P>
9fa54323c1382c969190ec46eb1c7ca783aec9b9Timo Sirainen <P>
9fa54323c1382c969190ec46eb1c7ca783aec9b9Timo Sirainen The BrowserMatch directive defines environment variables based on the
9fa54323c1382c969190ec46eb1c7ca783aec9b9Timo Sirainen <SAMP>User-Agent</SAMP> HTTP request header field. The first argument
9261dbf0675204898c6557591c7aa376e23a52b2Timo Sirainen should be a POSIX.2 extended regular expression (similar to an
9261dbf0675204898c6557591c7aa376e23a52b2Timo Sirainen <SAMP>egrep</SAMP>-style regex). The rest of the arguments give the
9261dbf0675204898c6557591c7aa376e23a52b2Timo Sirainen names of variables to set, and optionally values to which they should
9261dbf0675204898c6557591c7aa376e23a52b2Timo Sirainen be set. These take the form of
9261dbf0675204898c6557591c7aa376e23a52b2Timo Sirainen </P>
9261dbf0675204898c6557591c7aa376e23a52b2Timo Sirainen <OL>
9261dbf0675204898c6557591c7aa376e23a52b2Timo Sirainen <LI><SAMP><EM>varname</EM></SAMP>, or
9e808b253bf5c20878fedfb44e4f2273db31da7cTimo Sirainen </LI>
9e808b253bf5c20878fedfb44e4f2273db31da7cTimo Sirainen <LI><SAMP>!<EM>varname</EM></SAMP>, or
9e808b253bf5c20878fedfb44e4f2273db31da7cTimo Sirainen </LI>
9e808b253bf5c20878fedfb44e4f2273db31da7cTimo Sirainen <LI><SAMP><EM>varname</EM>=<EM>value</EM></SAMP>
9e808b253bf5c20878fedfb44e4f2273db31da7cTimo Sirainen </LI>
e5acc283bf030b0b5c79ca4e52d315c516a299faPascal Volk </OL>
e5acc283bf030b0b5c79ca4e52d315c516a299faPascal Volk <P>
9e808b253bf5c20878fedfb44e4f2273db31da7cTimo Sirainen In the first form, the value will be set to &quot;1&quot;. The second
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen will remove the given variable if already defined, and the third will
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen set the variable to the value given by <SAMP><EM>value</EM></SAMP>. If a
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen <SAMP>User-Agent</SAMP> string matches more than one entry, they will
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen be merged. Entries are processed in the order in which they appear,
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen and later entries can override earlier ones.
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen </P>
3809b9691c46926aa54968ac8e418d04361e1efaTimo Sirainen <P>
395ad9a760c494a2106fada1392c5432a1629de6Timo Sirainen For example:
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </P>
395ad9a760c494a2106fada1392c5432a1629de6Timo Sirainen <PRE>
395ad9a760c494a2106fada1392c5432a1629de6Timo Sirainen BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
395ad9a760c494a2106fada1392c5432a1629de6Timo Sirainen BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
395ad9a760c494a2106fada1392c5432a1629de6Timo Sirainen BrowserMatch MSIE !javascript
395ad9a760c494a2106fada1392c5432a1629de6Timo Sirainen </PRE>
395ad9a760c494a2106fada1392c5432a1629de6Timo Sirainen <P>
395ad9a760c494a2106fada1392c5432a1629de6Timo Sirainen Note that the regular expression string is
395ad9a760c494a2106fada1392c5432a1629de6Timo Sirainen <STRONG>case-sensitive</STRONG>. For cane-INsensitive matching, see
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen the
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="#BrowserMatchNoCase"
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen ><SAMP>BrowserMatchNoCase</SAMP></A>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen directive.
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen </P>
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen <P>
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen The <SAMP>BrowserMatch</SAMP> and <SAMP>BrowserMatchNoCase</SAMP>
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen directives are special cases of the
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="#SetEnvIf"
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen ><SAMP>SetEnvIf</SAMP></A>
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen and
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="#SetEnvIfNoCase"
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen ><SAMP>SetEnvIfNoCase</SAMP></A>
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen directives. The following two lines have the same effect:
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen </P>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <PRE>
188fe6051d70c861236e41ffc14f949a9994c324Timo Sirainen BrowserMatchNoCase Robot is_a_robot
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen SetEnvIfNoCase User-Agent Robot is_a_robot
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen </PRE>
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen <HR> <!-- the HR is part of the directive description -->
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen <H2>
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen <A NAME="BrowserMatchNoCase">
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen The <SAMP>BrowserMatchNoCase</SAMP> Directive
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen </A>
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen </H2>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <P>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="directive-dict.html#Syntax"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen REL="Help"
e7ca5f820d6a1a8fe549a2966ac707a60e055ef4Timo Sirainen ><STRONG>Syntax:</STRONG></A> BrowserMatchNoCase <EM>regex envar[=value] [...]</EM>
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen <BR>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <A
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen HREF="directive-dict.html#Default"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen REL="Help"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen ><STRONG>Default:</STRONG></A> <EM>none</EM>
e7ca5f820d6a1a8fe549a2966ac707a60e055ef4Timo Sirainen <BR>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <A
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen HREF="directive-dict.html#Context"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen REL="Help"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen ><STRONG>Context:</STRONG></A> server config
f35410e3121ced145c4d76da08be866a305b08ccTimo Sirainen <BR>
f35410e3121ced145c4d76da08be866a305b08ccTimo Sirainen <A
f35410e3121ced145c4d76da08be866a305b08ccTimo Sirainen HREF="directive-dict.html#Override"
f35410e3121ced145c4d76da08be866a305b08ccTimo Sirainen REL="Help"
f35410e3121ced145c4d76da08be866a305b08ccTimo Sirainen ><STRONG>Override:</STRONG></A> <EM>none</EM>
f35410e3121ced145c4d76da08be866a305b08ccTimo Sirainen <BR>
f35410e3121ced145c4d76da08be866a305b08ccTimo Sirainen <A
f35410e3121ced145c4d76da08be866a305b08ccTimo Sirainen HREF="directive-dict.html#Status"
360e3e43d296945b60e53348b61d2aa95a0a3dd4Timo Sirainen REL="Help"
360e3e43d296945b60e53348b61d2aa95a0a3dd4Timo Sirainen ><STRONG>Status:</STRONG></A> Base
f35410e3121ced145c4d76da08be866a305b08ccTimo Sirainen <BR>
cf072c30967a714a42beac85ad8638bcc679390fTimo Sirainen <A
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen HREF="directive-dict.html#Module"
9aef7a5fcee899c061d35ed8f2fca6b0b5bee3d5Timo Sirainen REL="Help"
9aef7a5fcee899c061d35ed8f2fca6b0b5bee3d5Timo Sirainen ><STRONG>Module:</STRONG></A> mod_setenvif
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <BR>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <A
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen HREF="directive-dict.html#Compatibility"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen REL="Help"
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen ><STRONG>Compatibility:</STRONG></A> Apache 1.2 and above
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen </P>
3f3260616dd0132974d18edf3fdbbb4abc45b1c3Timo Sirainen <P>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen The <SAMP>BrowserMatchNoCase</SAMP> directive is semantically identical to
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen the
3f3260616dd0132974d18edf3fdbbb4abc45b1c3Timo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="#BrowserMatch"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen ><SAMP>BrowserMatch</SAMP></A>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen directive. However, it provides for case-insensitive matching. For
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen example:
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen </P>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <PRE>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen BrowserMatchNoCase mac platform=macintosh
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen BrowserMatchNoCase win platform=windows
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen </PRE>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <P>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen The <SAMP>BrowserMatch</SAMP> and <SAMP>BrowserMatchNoCase</SAMP>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen directives are special cases of the
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="#SetEnvIf"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen ><SAMP>SetEnvIf</SAMP></A>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen and
72f0ed440e0ad7046d5f1ae14450a197ff5365a9Timo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="#SetEnvIfNoCase"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen ><SAMP>SetEnvIfNoCase</SAMP></A>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen directives. The following two lines have the same effect:
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen </P>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <PRE>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen BrowserMatchNoCase Robot is_a_robot
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen SetEnvIfNoCase User-Agent Robot is_a_robot
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen </PRE>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <HR> <!-- the HR is part of the directive description -->
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <H2>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <A NAME="SetEnvIf">
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen The <SAMP>SetEnvIf</SAMP> Directive
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen </A>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen </H2>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <P>
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="directive-dict.html#Syntax"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen REL="Help"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen ><STRONG>Syntax:</STRONG></A> SetEnvIf <EM> attribute regex envar[=value] [...]</EM>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <BR>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="directive-dict.html#Default"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen REL="Help"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen ><STRONG>Default:</STRONG></A> <EM>none</EM>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <BR>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="directive-dict.html#Context"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen REL="Help"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen ><STRONG>Context:</STRONG></A> server config
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <BR>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="directive-dict.html#Override"
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen REL="Help"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen ><STRONG>Override:</STRONG></A> <EM>none</EM>
9aef7a5fcee899c061d35ed8f2fca6b0b5bee3d5Timo Sirainen <BR>
9aef7a5fcee899c061d35ed8f2fca6b0b5bee3d5Timo Sirainen <A
9aef7a5fcee899c061d35ed8f2fca6b0b5bee3d5Timo Sirainen HREF="directive-dict.html#Status"
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen REL="Help"
375848bde4272b83b43865698f88c1b75f39162dTimo Sirainen ><STRONG>Status:</STRONG></A> Base
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <BR>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="directive-dict.html#Module"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen REL="Help"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen ><STRONG>Module:</STRONG></A> mod_setenvif
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <BR>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="directive-dict.html#Compatibility"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen REL="Help"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen ><STRONG>Compatibility:</STRONG></A> Apache 1.3 and above
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen </P>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <P>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen The <SAMP>SetEnvIf</SAMP> directive defines environment variables
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen based on attributes of the request. These attributes can be the
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen values of various HTTP request header fields (see
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <A
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen HREF="http://ds.internic.net/rfc/rfc2068.txt"
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen >RFC2068</A>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen for more information about these), or of other aspects of the request,
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen including the following:
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen </P>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <UL>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <LI><SAMP>Remote_Host</SAMP> - the hostname (if available) of the
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen client making the request
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen </LI>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <LI><SAMP>Remote_Addr</SAMP> - the IP address of the client making
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen the request
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen </LI>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <LI><SAMP>Remote_User</SAMP> - the authenticated username (if
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen available)
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen </LI>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <LI><SAMP>Request_Method</SAMP> - the name of the method being used
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen (<SAMP>GET</SAMP>, <SAMP>POST</SAMP>, <EM>et cetera</EM>)
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen </LI>
da9f6acdcb303d0fe5160b669668aedf39c8f45aTimo Sirainen <LI><SAMP>Request_URI</SAMP> - the portion of the URL following the
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen scheme and host portion
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </LI>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </UL>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <P>
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen Some of the more commonly used request header field names include
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen <SAMP>Host</SAMP>, <SAMP>User-Agent</SAMP>, and <SAMP>Referer</SAMP>.
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen </P>
648d24583c1574441c4fa0331a90bd4d6e7996c5Timo Sirainen <P>
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen Example:
08a0b7b0d0444875001847ef2b1b7b76122620abTimo Sirainen </P>
08a0b7b0d0444875001847ef2b1b7b76122620abTimo Sirainen <PRE>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen SetEnvIf Request_URI "\.(gif)|(jpg)|(xbm)$" object_is_image
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen SetEnvIf Referer www\.mydomain\.com intra_site_referral
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </PRE>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <P>
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen The first will set the envariable <SAMP>object_is_image</SAMP> if the
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen request was for an image file, and the second sets
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen <SAMP>intra_site_referral</SAMP> if the referring page was somewhere
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen on the <SAMP>www.mydomain.com</SAMP> Web site.
c9dea5c23355dea35c6fa423de69f6507852efe4Timo Sirainen </P>
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen <HR> <!-- the HR is part of the directive description -->
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen <H2>
c9dea5c23355dea35c6fa423de69f6507852efe4Timo Sirainen <A NAME="SetEnvIfNoCase">
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen The <SAMP>SetEnvIfNoCase</SAMP> Directive
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen </A>
c9dea5c23355dea35c6fa423de69f6507852efe4Timo Sirainen </H2>
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen <P>
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen <A
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen HREF="directive-dict.html#Syntax"
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen REL="Help"
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen ><STRONG>Syntax:</STRONG></A> SetEnvIfNoCase
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen <EM> attribute regex envar[=value] [...]</EM>
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen <BR>
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen <A
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen HREF="directive-dict.html#Default"
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen REL="Help"
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen ><STRONG>Default:</STRONG></A> <EM>none</EM>
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen <BR>
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen <A
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen HREF="directive-dict.html#Context"
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen REL="Help"
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen ><STRONG>Context:</STRONG></A> server config
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <BR>
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen <A
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen HREF="directive-dict.html#Override"
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen REL="Help"
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen ><STRONG>Override:</STRONG></A> <EM>none</EM>
0d7b2e0750386fe1646a17d83a803d1d5eb3d3a0Timo Sirainen <BR>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <A
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen HREF="directive-dict.html#Status"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen REL="Help"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen ><STRONG>Status:</STRONG></A> Base
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <BR>
91dca97b367c54a139c268b56a0c67f564bd9197Timo Sirainen <A
3d817546d5a111cd235d04e7de137cfa8a2415b7Timo Sirainen HREF="directive-dict.html#Module"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen REL="Help"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen ><STRONG>Module:</STRONG></A> mod_setenvif
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <BR>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <A
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen HREF="directive-dict.html#Compatibility"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen REL="Help"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen ><STRONG>Compatibility:</STRONG></A> Apache 1.3 and above
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen </P>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <P>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen The <SAMP>SetEnvIfNoCase</SAMP> is semantically identical to the
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen <A
3d817546d5a111cd235d04e7de137cfa8a2415b7Timo Sirainen HREF="#SetEnvIf"
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen ><SAMP>SetEnvIf</SAMP></A>
3d817546d5a111cd235d04e7de137cfa8a2415b7Timo Sirainen directive, and differs only in that the regular expression matching is
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen performed in a case-insensitive manner. For example:
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen </P>
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen <PRE>
4213f20d2086ad5d3d1d82b5476fa1e9efdbb394Timo Sirainen SetEnvIfNoCase Host Apache\.Org site=apache
4213f20d2086ad5d3d1d82b5476fa1e9efdbb394Timo Sirainen </PRE>
4213f20d2086ad5d3d1d82b5476fa1e9efdbb394Timo Sirainen <P>
4213f20d2086ad5d3d1d82b5476fa1e9efdbb394Timo Sirainen This will cause the <SAMP>site</SAMP> envariable to be set to
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen &quot;<SAMP>apache</SAMP>&quot; if the HTTP request header field
5d202199f527590be29784e736600ddde4e4812bTimo Sirainen <SAMP>Host:</SAMP> was included and contained <SAMP>Apache.Org</SAMP>,
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen <SAMP>apache.org</SAMP>, or any other combination.
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen </P>
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen
2f122b4db3f0d4eeb59ff9d306e54b2009d72cf9Timo Sirainen<!--#include virtual="footer.html" -->
ea319bf12eaa7870a271ab77376d6d83a9408380Timo Sirainen </BODY>
7fb70daba4e571eab5b64f496d20b9e37e31141bTimo Sirainen</HTML>
02a54da28f376dd66d7939d8546a196a0045b486Timo Sirainen