Назад | Перейти на главную страницу

Apache HTTPd 2.2 игнорирует регулярное выражение LocationMatch

Я пытаюсь создать обратный прокси-сервер, соответствующий всем URL-адресам, кроме одного в Apache 2.2. Он работает на Apache 2.4 (Centos 7), но не на 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>

Мой сервер ищет / var / www / html / my-website (которого не существует), когда я набираю https://my-server.com/my-website потому что регулярное выражение не соответствует ^ / my-website (?! / redirect)

Я знаю, что Apache 2.2 не понимает всех отрицательных регулярных выражений PCRE, но, похоже, существуют некоторые уловки ... См.:

Затем, Я пробую простое регулярное выражение:

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

... и, похоже, это даже не интерпретируется как PCRE ... В этом случае, если я введу /my-website(.*) в URL-адрес, он будет работать.

Такое же поведение с (From http://httpd.apache.org/docs/2.2/en//mod/core.html#locationmatch):

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

... мне нужно напечатать http://my-server.com/(extra|special)/data в адресной строке браузера.

Нужен ли Apache HTTPd 2.2 дополнительный пакет для понимания PCRE в LocationMatch?

Установленные пакеты:

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

Странно ...

Спасибо