| <?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> |