Apache 2.4 - ProxyPassMatch перед правилом перезаписи - PullRequest
0 голосов
/ 25 сентября 2019

Наконец, мы должны перейти с (только в локальной сети) Apache 2.2 на Apache 2.4.К сожалению, похоже, что порядок обработки ProxyPassMatch действительно изменился.

Ранее в Apache 2.2 мы использовали:

# /cms/media is on CMS server, files will be cached locally at folder system_a
# there is a session information at /cms/media/(<sessionID>/ followed by a path

ProxyPassMatch ^/cms/media/(.*)$ http://app1.com/system_a/$1

RewriteCond %{DOCUMENT_ROOT}/$1$2$3$4 !-f
RewriteCond %{DOCUMENT_ROOT}/app1/local_cache/index.php -f
RewriteRule \/(system_a\/)\(.*\)\/([^\/]*\/)([^\/]*\/)(.*) /app1/local_cache/index.php

RewriteCond %{DOCUMENT_ROOT}/$1$2$3$4 -f
RewriteRule \/(system_a\/)\(.*\)\/([^\/]*\/)([^\/]*\/)(.*) /$1$2$3$4

Условие перезаписи было вызвано, когда проход прокси изменил путь / cms /медиа для / system_a.Теперь, с Apache 2.4, похоже, что сопоставление прохода прокси применяется ПОСЛЕ того, как применяются условия перезаписи и правила перезаписи.

Есть ли способ изменить его так, чтобы сопоставление прохода прокси изменило URL и перезаписьправила применяются позже?

Что я уже пробовал:

  • изменить соответствие прохода прокси на правило перезаписи -> не работает, так как механизм кеширования внутри php нуждается в надлежащемпуть для извлечения данных, если он еще не доступен локально
  • измените правило более поздней перезаписи на использование / cms / media вместо локальной папки / system_a -> та же проблема, что и выше

Извинитеесли это глупый вопрос, возможно, мой разум просто застрял, потому что у меня нет кофеина: -)

...