Apache 2.4% de formato de cabeçalho não reconhecido

1

Usando o Apache 2.4 e seguindo os exemplos aqui link

Aqui está o meu código

<If "!%{REQUEST_URI} =~ m#files/cache/static/[A-Za-z_\-0-9]+.cache#"> 
    Header set foo-checksum "expr=%{md5:foo}"
</If>

Estou apenas jogando no momento, mas assim que usar

    Header set foo-checksum "expr=%{md5:foo}"

De acordo com o exemplo deles - recebo

AH00526: Syntax error on line 130 of /etc/httpd/conf/httpd.conf:
httpd[19459]: Unrecognized header format %
httpd.service: main process exited, code=exited, status=1/FAILURE

No início do apache. Alguma ideia? Eu tentei fora de uma expressão também e dá o mesmo erro

Outras expressões funcionam.

    
por James 11.01.2016 / 23:51

1 resposta

4

Você precisa estar usando o Apache v2.4.10 ou superior e como o Ubuntu 14.04 LTS vem com v2.4.7, é mais provável que você esteja usando. A documentação menciona isso brevemente no início dos documentos de diretiva de cabeçalho:

Compatibility: SetIfEmpty available in 2.4.7 and later, expr=value available in 2.4.10 and later

Eu corri alguns servidores para confirmar que isso funciona

Apache v2.4.12:

root@ubuntu-server:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 15.10
Release:    15.10
Codename:   wily

root@ubuntu-server:~# cat /etc/apache2/sites-enabled/000-default.conf 
<VirtualHost *:80>
Header set foo-checksum "expr=%{md5:foo}"
</VirtualHost>

root@ubuntu-server:~# apachectl -v
Server version: Apache/2.4.12 (Ubuntu)
Server built:   Jul 24 2015 15:59:00

root@ubuntu-server:~# service apache2 reload

root@ubuntu-server:~# curl -I localhost
HTTP/1.1 200 OK
Date: Mon, 07 Mar 2016 21:15:38 GMT
Server: Apache/2.4.12 (Ubuntu)
Last-Modified: Mon, 07 Mar 2016 20:57:04 GMT
ETag: "2c39-52d7bb502f118"
Accept-Ranges: bytes
Content-Length: 11321
Vary: Accept-Encoding
foo-checksum: acbd18db4cc2f85cedef654fccc4a4d8
Content-Type: text/html

mas não no Apache v2.4.7:

root@ubuntu-server:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.4 LTS
Release:    14.04
Codename:   trusty

root@ubuntu-server:~# cat /etc/apache2/sites-enabled/000-default.conf 
<VirtualHost *:80>
Header set foo-checksum "expr=%{md5:foo}"
</VirtualHost>

root@ubuntu-server:~# apachectl -v
Server version: Apache/2.4.7 (Ubuntu)
Server built:   Jan 14 2016 17:45:23

root@ubuntu-server:~# service apache2 reload
 * Reloading web server apache2                                                                                                                   * 
 * The apache2 configtest failed. Not doing anything.
Output of config test was:
AH00526: Syntax error on line 2 of /etc/apache2/sites-enabled/000-default.conf:
Unrecognized header format %
Action 'configtest' failed.
The Apache error log may have more information.
    
por 07.03.2016 / 22:40