O Apache HTTPd 2.2 está ignorando o LocationMatch regex

4

Estou tentando criar um proxy reverso que corresponda a todas as URLs, exceto uma no Apache 2.2. Ele funciona no Apache 2.4 (Centos 7), mas não no Apache 2.2 (Centos 6.6) ...

# Do not modify this
<LocationMatch "^/my-website-2">
        ProxyPass http://X.X.X.X:PORT/my-website-2
        ProxyPassReverse http://X.X.X.X:PORT/my-website-2
        (...)
</LocationMatch>

# Match every URL except the one finishing with /redirect
<LocationMatch "^/my-website(?!/redirect)">
        ProxyPass http://X.X.X.X:PORT/my-website
        ProxyPassReverse http://X.X.X.X:PORT/my-website
        AuthType XXX
        RequestHeader set XXX YYY
        (...)
</LocationMatch>

# Do anothers directives with this URL only, finishing with /redirect
<Location "/my-website/redirect">
        AuthType XXX
        (...)
</Location>

Meu servidor está procurando por / var / www / html / my-website (que não existe) quando eu digito link porque o regex não corresponde a ^ / my-website (?! / redirect)

Eu sei que o Apache 2.2 não entende cada regex PCRE negativo, mas parece que existem alguns truques ... Veja:

Então, eu tento uma regex simples:

<LocationMatch "/my-website(.*)">

... e parece que nem é interpretado como PCRE ... Com esse caso de uso, se eu digitar /my-website(.*) na URL, isso funcionará.

Mesmo comportamento com (De link ):

<LocationMatch "/(extra|special)/data">

... Preciso digitar link na barra de URL do navegador.

O Apache HTTPd 2.2 precisa de um pacote adicional para entender o PCRE no LocationMatch?

Pacotes instalados:

httpd.x86_64            2.2.15-60.el6.centos.6
apr.x86_64              1.3.9-5.el6_9.1 @Default_Organization_CentOS_6_CentOS_6_Update_x86_64
apr-util.x86_64         1.3.9-3.el6_0.1 @in-std
pcre.x86_64             7.8-7.el6       @Default_Organization_CentOS_6_CentOS_6_Base_x86_64
pcre-devel.x86_64       7.8-7.el6       @Default_Organization_CentOS_6_CentOS_6_Base_x86_64

Estranho ...

Obrigado

    
por cactuschibre 12.04.2018 / 10:32

0 respostas