Vous devez utiliser Apache v2.4.10 ou ultérieur et comme Ubuntu 14.04 LTS est livré avec v2.4.7, c'est probablement ce que vous utilisez. La documentation mentionne brièvement cela au début des directives Header :
Compatibilité : SetIfEmpty disponible à partir de 2.4.7, expr=value disponible à partir de 2.4.10
J'ai démarré quelques serveurs pour confirmer que cela fonctionne
Apache v2.4.12 :
root@ubuntu-server:~# lsb_release -a
No modules LSB are available.
Identifiant du distributeur : Ubuntu
Description : Ubuntu 15.10
Version : 15.10
Nom de code : wily
root@ubuntu-server:~# cat /etc/apache2/sites-enabled/000-default.conf
Header set foo-checksum "expr=%{md5:foo}"
root@ubuntu-server:~# apachectl -v
Version du serveur : Apache/2.4.12 (Ubuntu)
Serveur construit : 24 juil. 2015 15:59:00
root@ubuntu-server:~# service apache2 reload
root@ubuntu-server:~# curl -I localhost
HTTP/1.1 200 OK
Date: lun., 07 mar. 2016 21:15:38 GMT
Serveur: Apache/2.4.12 (Ubuntu)
Dernière modification : lun., 07 mar. 2016 20:57:04 GMT
ETag: "2c39-52d7bb502f118"
Accept-Range: bytes
Longueur du contenu : 11321
Vary: Accept-Encoding
foo-checksum: acbd18db4cc2f85cedef654fccc4a4d8
Type de contenu: text/html
mais pas sur Apache v2.4.7 :
root@ubuntu-server:~# lsb_release -a
Aucun module LSB disponible.
Identifiant du distributeur : Ubuntu
Description : Ubuntu 14.04.4 LTS
Version : 14.04
Nom de code : trusty
root@ubuntu-server:~# cat /etc/apache2/sites-enabled/000-default.conf
Header set foo-checksum "expr=%{md5:foo}"
root@ubuntu-server:~# apachectl -v
Version du serveur : Apache/2.4.7 (Ubuntu)
Serveur construit : 14 janv. 2016 17:45:23
root@ubuntu-server:~# service apache2 reload
* Rechargement du serveur web apache2 *
* Le test de configuration apache2 a échoué. Aucune action n'est effectuée.
La sortie du test de configuration était :
AH00526: Erreur de syntaxe à la ligne 2 de /etc/apache2/sites-enabled/000-default.conf :
Format d'en-tête non reconnu %
L'action 'configtest' a échoué.
Le journal d'erreur Apache peut contenir plus d'informations.