mod_version
Configuration dépendant de la version
Extension
mod_version.c
version_module

Ce module a été conçu pour être utilisé dans les suites de tests et les grands réseaux qui doivent prendre en compte différentes versions de httpd et différentes configurations. Il fournit un nouveau conteneur -- IfVersion, qui apporte une grande souplesse dans la vérification de version en permettant une comparaison numérique et l'utilisation d'expressions rationnelles.

# Exemples

<IfVersion 2.4.2> # la version actuelle de httpd est exactement 2.4.2 </IfVersion>

<IfVersion >= 2.5> # utilise vraiment les nouvelles fonctionnalités :-) </IfVersion>

Voir ci-dessous pour d'autres exemples.

IfVersion
Contient des portions de configuration dépendantes de la version
<IfVersion [[!]opérateur] version> ... </IfVersion>
server config
virtual host
directory
.htaccess
All

La section IfVersion rassemble des directives de configuration qui ne sont exécutées que si la version de httpd satisfait aux critères spécifiés. Pour une comparaison normale (numérique), l'argument version doit être spécifié sous le format `majeur[.mineur[.patch]]`, comme par exemple `2.1.0` ou `2.2`. mineur et patch sont optionnels. Si ces numéros sont absents, il se voient affectée implicitement la valeur 0. Les opérateurs numériques suivants sont autorisés :

opérateur | description
--- | ---
`=` ou `==` | La version de httpd est égale à la valeur spécifiée
`>` | La version de httpd est supérieure à la valeur spécifiée
`>=` | La version de httpd est supérieure ou égale à la valeur spécifiée
`<` | La version de httpd est inférieure à la valeur spécifiée
`<=` | La version de httpd est inférieure ou égale à la valeur spécifiée

# Exemple

<IfVersion >= 2.3> # la condition n'est satisfaite que pour les versions de httpd # supérieures ou égales à 2.3 </IfVersion>

En plus d'une comparaison numérique, il est possible de comparer la version de httpd avec une

expression rationnelle
. Il existe deux méthodes pour spécifier cette dernière :

opérateur | description
--- | ---
`=` ou `==` | version est de la forme `/regex/`
`~` | version est de la forme `regex`

# Exemple

<IfVersion = /^2.4.[01234]$/> # exemple de contournement pour les versions boguées </IfVersion>

Pour inverser la condition, tous les opérateurs peuvent être préfixés par un point d'exclamation (`!`) :

<IfVersion !~ ^2.4.[01234]$> # pas pour ces versions </IfVersion>

Si opérateur est absent, sa valeur implicite est `=`.