| <?xml version="1.0"?> | 
 | <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> | 
 | <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?> | 
 | <!-- $LastChangedRevision$ --> | 
 |  | 
 | <!-- | 
 |  Licensed to the Apache Software Foundation (ASF) under one or more | 
 |  contributor license agreements.  See the NOTICE file distributed with | 
 |  this work for additional information regarding copyright ownership. | 
 |  The ASF licenses this file to You under the Apache License, Version 2.0 | 
 |  (the "License"); you may not use this file except in compliance with | 
 |  the License.  You may obtain a copy of the License at | 
 |  | 
 |      http://www.apache.org/licenses/LICENSE-2.0 | 
 |  | 
 |  Unless required by applicable law or agreed to in writing, software | 
 |  distributed under the License is distributed on an "AS IS" BASIS, | 
 |  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
 |  See the License for the specific language governing permissions and | 
 |  limitations under the License. | 
 | --> | 
 |  | 
 | <modulesynopsis metafile="mod_version.xml.meta"> | 
 | <name>mod_version</name> | 
 | <description>Version dependent configuration</description> | 
 | <status>Extension</status> | 
 | <sourcefile>mod_version.c</sourcefile> | 
 | <identifier>version_module</identifier> | 
 |  | 
 | <summary> | 
 |     <p>This module is designed for the use in test suites and large | 
 |     networks which have to deal with different httpd versions and | 
 |     different configurations. It provides a new container -- <directive | 
 |     type="section" module="mod_version">IfVersion</directive>, which | 
 |     allows a flexible version checking including numeric comparisons and | 
 |     regular expressions.</p> | 
 |  | 
 |     <example><title>Examples</title> | 
 |     <highlight language="config"> | 
 | <IfVersion 2.4.2> | 
 |     # current httpd version is exactly 2.4.2 | 
 | </IfVersion> | 
 |  | 
 | <IfVersion >= 2.5> | 
 |     # use really new features :-) | 
 | </IfVersion> | 
 |       </highlight> | 
 |     </example> | 
 |  | 
 |     <p>See below for further possibilities.</p> | 
 | </summary> | 
 |  | 
 | <directivesynopsis type="section"> | 
 | <name>IfVersion</name> | 
 | <description>contains version dependent configuration</description> | 
 | <syntax><IfVersion [[!]<var>operator</var>] <var>version</var>> ... | 
 | </IfVersion></syntax> | 
 | <contextlist><context>server config</context><context>virtual host</context> | 
 | <context>directory</context><context>.htaccess</context></contextlist> | 
 | <override>All</override> | 
 |  | 
 | <usage> | 
 |     <p>The <directive type="section">IfVersion</directive> section encloses | 
 |     configuration directives which are executed only if the | 
 |     <program>httpd</program> version | 
 |     matches the desired criteria. For normal (numeric) comparisons the | 
 |     <var>version</var> argument has the format | 
 |     <code><var>major</var>[.<var>minor</var>[.<var>patch</var>]]</code>, e.g. | 
 |     <code>2.1.0</code> or <code>2.2</code>. <var>minor</var> and | 
 |     <var>patch</var> are optional. If these numbers are omitted, they are | 
 |     assumed to be zero. The following numerical <var>operator</var>s are | 
 |     possible:</p> | 
 |  | 
 |     <table style="zebra" border="1"> | 
 |     <tr><th><var>operator</var></th><th>description</th></tr> | 
 |     <tr><td><code>=</code> or <code>==</code></td> | 
 |         <td>httpd version is equal</td></tr> | 
 |     <tr><td><code>></code></td> | 
 |         <td>httpd version is greater than</td></tr> | 
 |     <tr><td><code>>=</code></td> | 
 |         <td>httpd version is greater or equal</td></tr> | 
 |     <tr><td><code><</code></td> | 
 |         <td>httpd version is less than</td></tr> | 
 |     <tr><td><code><=</code></td> | 
 |         <td>httpd version is less or equal</td></tr> | 
 |     </table> | 
 |  | 
 |     <example><title>Example</title> | 
 |     <highlight language="config"> | 
 | <IfVersion >= 2.3> | 
 |     # this happens only in versions greater or | 
 |     # equal 2.3.0. | 
 | </IfVersion> | 
 |       </highlight> | 
 |     </example> | 
 |  | 
 |     <p>Besides the numerical comparison it is possible to match a | 
 |     <glossary ref="regex">regular expression</glossary> | 
 |     against the httpd version. There are two ways to write it:</p> | 
 |  | 
 |     <table style="zebra" border="1"> | 
 |     <tr><th><var>operator</var></th><th>description</th></tr> | 
 |     <tr><td><code>=</code> or <code>==</code></td> | 
 |         <td><var>version</var> has the form | 
 |             <code>/<var>regex</var>/</code></td></tr> | 
 |     <tr><td><code>~</code></td> | 
 |         <td><var>version</var> has the form | 
 |             <code><var>regex</var></code></td></tr> | 
 |     </table> | 
 |  | 
 |     <example><title>Example</title> | 
 |     <highlight language="config"> | 
 | <IfVersion = /^2.4.[01234]$/> | 
 |     # e.g. workaround for buggy versions | 
 | </IfVersion> | 
 |       </highlight> | 
 |     </example> | 
 |  | 
 |     <p>In order to reverse the meaning, all operators can be preceded by an | 
 |     exclamation mark (<code>!</code>):</p> | 
 |  | 
 |     <highlight language="config"> | 
 | <IfVersion !~ ^2.4.[01234]$> | 
 |     # not for those versions | 
 | </IfVersion> | 
 |     </highlight> | 
 |  | 
 |     <p>If the <var>operator</var> is omitted, it is assumed to be | 
 |     <code>=</code>.</p> | 
 | </usage> | 
 | </directivesynopsis> | 
 |  | 
 | </modulesynopsis> |