You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by nd...@apache.org on 2004/04/12 17:50:43 UTC

cvs commit: httpd-2.0/docs/manual/mod mod_version.xml

nd          2004/04/12 08:50:43

  Added:       docs/manual/mod mod_version.xml
  Log:
  describe mod_version, please review.
  
  Revision  Changes    Path
  1.1                  httpd-2.0/docs/manual/mod/mod_version.xml
  
  Index: mod_version.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
  <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
  
  <!--
   Copyright 2004 The Apache Software Foundation
  
   Licensed 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>
  <compatibility>Available in version 2.1 and later</compatibility>
  
  <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>
        &lt;IfVersion 2.1.0&gt;<br />
        <indent>
          # current httpd version is exactly 2.1.0<br />
        </indent>
        &lt;/IfVersion&gt;<br />
        <br />
        &lt;IfVersion >= 2.2&gt;<br />
        <indent>
          # use really new features :-)<br />
        </indent>
        &lt;/IfVersion&gt;
      </example>
  
      <p>See below for further possibilities.</p>
  </summary>
  
  <directivesynopsis type="section">
  <name>IfVersion</name>
  <description>contains version dependent configuration</description>
  <syntax>&lt;IfVersion [[!]<var>operator</var>] <var>version</var>&gt; ...
  &lt;/IfVersion&gt;</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 httpd 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>
      <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>&gt;</code></td>
          <td>httpd version is greater than</td></tr>
      <tr><td><code>&gt;=</code></td>
          <td>httpd version is greater or equal</td></tr>
      <tr><td><code>&lt;</code></td>
          <td>httpd version is less than</td></tr>
      <tr><td><code>&lt;=</code></td>
          <td>httpd version is less or equal</td></tr>
      </table>
  
      <example><title>Example</title>
        &lt;IfVersion >= 2.1&gt;<br />
        <indent>
          # this happens only in versions greater or<br />
          # equal 2.1.0.<br />
        </indent>
        &lt;/IfVersion&gt;
      </example>
  
      <p>Besides the numerical comparison it is possible to match a regular
      expression against the httpd version. There are two ways to write it:</p>
  
      <table>
      <tr><th>operator</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>
        &lt;IfVersion = /^2.1.[01234]$/&gt;<br />
        <indent>
          # e.g. workaround for buggy versions
        </indent>
        &lt;/IfVersion&gt;
      </example>
  
      <p>In order to reverse the meaning, all operators can be preceded by an
      exclamation mark (<code>!</code>):</p>
  
      <example>
        &lt;IfVersion !~ ^2.1.[01234]$&gt;<br />
        <indent>
          # not for those versions<br />
        </indent>
        &lt;/IfVersion&gt;
      </example>
  
      <p>If the operator is omitted, it is assumed to be <code>=</code>.</p>
  </usage>
  </directivesynopsis>
  
  </modulesynopsis>