<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<meta content="noindex, nofollow" name="robots" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_setenvif - Apache HTTP Server</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/mod/mod_setenvif.html" rel="canonical" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
<p class="apache">Apache HTTP Server Version 2.0</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.0</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div class="retired"><h4>Please note</h4>
            <p>This document refers to the <strong>2.0</strong> version of Apache httpd, which <strong>is no longer maintained</strong>. Upgrade, and refer to the current version of httpd instead, documented at:</p>
        <ul><li><a href="http://httpd.apache.org/docs/current/">Current release version of Apache HTTP Server documentation</a></li></ul><p>You may follow <a href="http://httpd.apache.org/docs/current/mod/mod_setenvif.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Apache Module mod_setenvif</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/mod/mod_setenvif.html" title="English">&nbsp;en&nbsp;</a> |
<a href="../ja/mod/mod_setenvif.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_setenvif.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/mod/mod_setenvif.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Allows the setting of environment variables based
on characteristics of the request</td></tr>
<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Base</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Module&#160;Identifier:</a></th><td>setenvif_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Source&#160;File:</a></th><td>mod_setenvif.c</td></tr></table>
<h3>Summary</h3>


    <p>The <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> module allows you to set
    environment variables according to whether different aspects of
    the request match regular expressions you specify. These
    environment variables can be used by other parts of the server
    to make decisions about actions to be taken.</p>

    <p>The directives are considered in the order they appear in
    the configuration files. So more complex sequences can be used,
    such as this example, which sets <code>netscape</code> if the
    browser is mozilla but not MSIE.</p>

<div class="example"><p><code>
  BrowserMatch ^Mozilla netscape<br />
  BrowserMatch MSIE !netscape<br />
</code></p></div>
</div>
<div id="quickview"><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#browsermatch">BrowserMatch</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#browsermatchnocase">BrowserMatchNoCase</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#setenvif">SetEnvIf</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#setenvifnocase">SetEnvIfNoCase</a></li>
</ul>
<h3>See also</h3>
<ul class="seealso">
<li><a href="../env.html">Environment Variables in Apache</a></li>
</ul></div>

<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="BrowserMatch" id="BrowserMatch">BrowserMatch</a> <a name="browsermatch" id="browsermatch">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets environment variables conditional on HTTP User-Agent
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BrowserMatch <em>regex [!]env-variable</em>[=<em>value</em>]
[[!]<em>env-variable</em>[=<em>value</em>]] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
</table>
  <p>The <code class="directive">BrowserMatch</code> is a special cases of the
  <code class="directive"><a href="#setenvif">SetEnvIf</a></code> directive that
  sets environment variables conditional on the
  <code>User-Agent</code> HTTP request header.  The following two
  lines have the same effect:</p>
<div class="example"><p><code>
   BrowserMatchNoCase Robot is_a_robot<br /> 
   SetEnvIfNoCase User-Agent Robot is_a_robot<br /> 
</code></p></div>

    <p>Some additional examples:</p>
<div class="example"><p><code>
    BrowserMatch ^Mozilla forms jpeg=yes browser=netscape<br />
    BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript<br />
    BrowserMatch MSIE !javascript<br />
</code></p></div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="BrowserMatchNoCase" id="BrowserMatchNoCase">BrowserMatchNoCase</a> <a name="browsermatchnocase" id="browsermatchnocase">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets environment variables conditional on User-Agent without
respect to case</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BrowserMatchNoCase  <em>regex [!]env-variable</em>[=<em>value</em>]
    [[!]<em>env-variable</em>[=<em>value</em>]] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Apache 1.2 and
    above (in Apache 1.2 this directive was found in the
    now-obsolete mod_browser module)</td></tr>
</table>

    <p>The <code class="directive">BrowserMatchNoCase</code> directive is
    semantically identical to the <code class="directive"><a href="#browsermatch">BrowserMatch</a></code> directive.
    However, it provides for case-insensitive matching. For
    example:</p>
<div class="example"><p><code>
    BrowserMatchNoCase mac platform=macintosh<br />
    BrowserMatchNoCase win platform=windows<br />
</code></p></div>

    <p>The <code class="directive">BrowserMatch</code> and
    <code class="directive">BrowserMatchNoCase</code> directives are special cases of
    the <code class="directive"><a href="#setenvif">SetEnvIf</a></code> and <code class="directive"><a href="#setenvifnocase">SetEnvIfNoCase</a></code>
    directives. The following two lines have the same effect:</p>
<div class="example"><p><code>
   BrowserMatchNoCase Robot is_a_robot<br />
   SetEnvIfNoCase User-Agent Robot is_a_robot<br />
</code></p></div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="SetEnvIf" id="SetEnvIf">SetEnvIf</a> <a name="setenvif" id="setenvif">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets environment variables based on attributes of the request
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SetEnvIf <em>attribute
    regex [!]env-variable</em>[=<em>value</em>]
    [[!]<em>env-variable</em>[=<em>value</em>]] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
</table>
    <p>The <code class="directive">SetEnvIf</code> directive defines
    environment variables based on attributes of the request. The
    <em>attribute</em> specified in the first argument can be one of three
    things:</p>

<ol>
<li>An HTTP request header field (see <a href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC2616</a>
    for more information about these); for example: <code>Host</code>,
    <code>User-Agent</code>, <code>Referer</code>, and 
    <code>Accept-Language</code>.  A regular expression may be
    used to specify a set of request headers.</li>

<li>One of the following aspects of the request:
    <ul>
      <li><code>Remote_Host</code> - the hostname (if available) of
      the client making the request</li>

      <li><code>Remote_Addr</code> - the IP address of the client
      making the request</li>

      <li><code>Server_Addr</code> - the IP address of the server
      on which the request was received (only with versions later
      than 2.0.43)</li>

      <li><code>Request_Method</code> - the name of the method
      being used (<code>GET</code>, <code>POST</code>, <em>et
      cetera</em>)</li>

      <li><code>Request_Protocol</code> - the name and version of
      the protocol with which the request was made (<em>e.g.</em>,
      "HTTP/0.9", "HTTP/1.1", <em>etc.</em>)</li>

      <li><code>Request_URI</code> - the resource requested on the HTTP
       request line -- generally the portion of the URL
      following the scheme and host portion without the query string. See
      the <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>
      directive of <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> for extra information on
      how to match your query string.</li>
    </ul>
</li>

<li>The name of an environment variable in the list of those
associated with the request. This allows
<code class="directive">SetEnvIf</code> directives to test against the result
of prior matches. Only those environment variables defined by earlier
<code>SetEnvIf[NoCase]</code> directives are available for testing in
this manner. 'Earlier' means that they were defined at a broader scope
(such as server-wide) or previously in the current directive's scope.
Environment variables will be considered only if there was no match
among request characteristics and a regular expression was not
used for the <em>attribute</em>.</li>
</ol>

<p>The second argument (<em>regex</em>) is a <a href="http://www.pcre.org/">Perl compatible regular expression</a>.
This is similar to a POSIX.2 egrep-style regular expression.
If the <em>regex</em> matches against the <em>attribute</em>,
then the remainder of the arguments are evaluated.</p>

<p>The rest of the arguments give the names of variables to set, and
optionally values to which they should be set. These take the form
of</p>

    <ol>
      <li><code><em>varname</em></code>, or</li>

      <li><code>!<em>varname</em></code>, or</li>

      <li><code><em>varname</em>=<em>value</em></code></li>
    </ol>

    <p>In the first form, the value will be set to "1". The second
    will remove the given variable if already defined, and the
    third will set the variable to the literal value given by
    <code><em>value</em></code>. Since version 2.0.51 Apache will
    recognize occurrences of <code>$1</code>..<code>$9</code> within
    <var>value</var> and replace them by parenthesized subexpressions
    of <var>regex</var>.</p>

<div class="example"><h3>Example:</h3><p><code>

   SetEnvIf Request_URI "\.gif$" object_is_image=gif<br />
   SetEnvIf Request_URI "\.jpg$" object_is_image=jpg<br />
   SetEnvIf Request_URI "\.xbm$" object_is_image=xbm<br />
        :<br />
   SetEnvIf Referer www\.mydomain\.com intra_site_referral<br />
        :<br />
   SetEnvIf object_is_image xbm XBIT_PROCESSING=1<br />
        :<br />
   SetEnvIf ^TS*  ^[a-z].*  HAVE_TS<br />
</code></p></div>

    <p>The first three will set the environment variable
    <code>object_is_image</code> if the request was for an image
    file, and the fourth sets <code>intra_site_referral</code> if
    the referring page was somewhere on the
    <code>www.mydomain.com</code> Web site.</p>

    <p>The last example will set environment variable
    <code>HAVE_TS</code> if the request contains any headers that
    begin with "TS" whose values begins with any character in the
    set [a-z].</p>

<h3>See also</h3>
<ul>
<li><a href="../env.html">Environment Variables in Apache</a>,
for additional examples.
</li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="SetEnvIfNoCase" id="SetEnvIfNoCase">SetEnvIfNoCase</a> <a name="setenvifnocase" id="setenvifnocase">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets environment variables based on attributes of the request
without respect to case</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SetEnvIfNoCase <em>attribute regex 
        [!]env-variable</em>[=<em>value</em>]
    [[!]<em>env-variable</em>[=<em>value</em>]] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Apache 1.3 and above</td></tr>
</table>

    <p>The <code class="directive">SetEnvIfNoCase</code> is semantically identical to
    the <code class="directive"><a href="#setenvif">SetEnvIf</a></code> directive,
    and differs only in that the regular expression matching is
    performed in a case-insensitive manner. For example:</p>
<div class="example"><p><code>
   SetEnvIfNoCase Host Apache\.Org site=apache
</code></p></div>

    <p>This will cause the <code>site</code> environment variable
    to be set to "<code>apache</code>" if the HTTP request header
    field <code>Host:</code> was included and contained
    <code>Apache.Org</code>, <code>apache.org</code>, or any other
    combination.</p>

</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_setenvif.html" title="English">&nbsp;en&nbsp;</a> |
<a href="../ja/mod/mod_setenvif.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_setenvif.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/mod/mod_setenvif.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2013 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div>
</body></html>