Mod_substitute JSON Заменить URL

ссылаясь на ЭТО Вопрос:

Вариант использования: Я отправляю запрос, который изменяю с помощью ProxyPass / ProxyPassReverse, чтобы добраться до внутреннего сервера. Ответ состоит из Content-Type application / json, который содержит внутренний URL-адрес, который мне нужно заменить вручную.

Мой файл конфигурации (proxy-https.conf) включен в httpd.conf и обычно работает нормально (например, ProxyPass работает нормально). Настройка такая:

Listen 443     
  <VirtualHost *:443>

  my rules...

</VirtualHost>

Мой подход заключался в использовании mod_substitute для замены URL-адреса в json. Но я не могу заставить его заменить внутренний URL-адрес, что бы я ни делал:

Substitute "s|backend-server:2719|proxy-host:443|ni"

Или же:

<Location "/">
    SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE
    AddOutputFilterByType SUBSTITUTE application/json
    Substitute "s|backend-server:2719|proxy-host|ni"
</Location>

И: я должен снова добавить модуль, хотя он уже был добавлен в httpd.conf:

LoadModule substitute_module modules/mod_substitute.so

Есть ли общая ошибка в моем приложении или я могу сделать это по-другому? Может еще один модульт?

Танки!

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
0
681
1

Ответы 1

ОК, сам нашел ответ:

LoadModule substitute_module modules/mod_substitute.so
LoadModule deflate_module modules/mod_deflate.so

FilterDeclare FnRofSGWinJSON
FilterProvider FnRofSGWinJSON SUBSTITUTE "%{CONTENT_TYPE} =~ m|^application/json|"

FilterDeclare unpackGZIP
FilterProvider unpackGZIP INFLATE "resp('Content-Encoding') == 'gzip'"

<Location "/my/pressous/path/">
  FilterChain unpackGZIP FnRofSGWinJSON DEFLATE
  Substitute "s|${URL_1}|${URL_2}/MarkerPath|in"
</Location>

Открыто, почему мне нужно снова загружать модули ...

Другие вопросы по теме