Apache HTTP Server Version 2.4

Apache > HTTP Server > Documentation > Version 2.4 > Modules

# Apache Module mod_version

Description: | Version dependent configuration
Status: | Extension
Module Identifier: | version_module
Source File: | mod_version.c

### Summary

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 -- `<IfVersion>`, which allows a flexible version checking including numeric comparisons and regular expressions.

### Examples

    <IfVersion 2.4.2>
        # current httpd version is exactly 2.4.2
    </IfVersion>

    <IfVersion >= 2.5>
        # use really new features :-)
    </IfVersion>

See below for further possibilities.

### Directives

### Bugfix checklist

- httpd changelog
- Known issues
- Report a bug

## <IfVersion> Directive

Description: | contains version dependent configuration
Syntax: | `<IfVersion [[!]operator] version> ... </IfVersion>`
Context: | server config, virtual host, directory, .htaccess
Override: | All
Status: | Extension
Module: | mod_version

The `<IfVersion>` section encloses configuration directives which are executed only if the `httpd` version matches the desired criteria. For normal (numeric) comparisons the version argument has the format `major[.minor[.patch]]`, e.g. `2.1.0` or `2.2`. minor and patch are optional. If these numbers are omitted, they are assumed to be zero. The following numerical operators are possible:

operator | description
--- | ---
`=` or `==` | httpd version is equal
`>` | httpd version is greater than
`>=` | httpd version is greater or equal
`<` | httpd version is less than
`<=` | httpd version is less or equal

### Example

    <IfVersion >= 2.3>
        # this happens only in versions greater or
        # equal 2.3.0.
    </IfVersion>

Besides the numerical comparison it is possible to match a regular expression against the httpd version. There are two ways to write it:

operator | description
--- | ---
`=` or `==` | version has the form `/regex/`
`~` | version has the form `regex`

### Example

    <IfVersion = /^2.4.[01234]$/>
        # e.g. workaround for buggy versions
    </IfVersion>

In order to reverse the meaning, all operators can be preceded by an exclamation mark (`!`):

    <IfVersion !~ ^2.4.[01234]$>
        # not for those versions
    </IfVersion>

If the operator is omitted, it is assumed to be `=`.