Как я могу переписать URL-адреса в XML с помощью Apache 2.4?

Apache 2.4 включает mod_proxy_html, и это здорово, он перехватывает все виды URL-адресов внутри HTML возвращается с сервера и исправляет их. Но у меня есть приложение Seam, которое иногда отправляет клиенту текстовые/xml-файлы с полными URL-адресами, которые также необходимо переписать, а mod_proxy_html их не исправляет.

По-видимому, был mod_proxy_xml, который существовал отдельно от mod_proxy_html, но Apache его не включал. Есть ли способ настроить mod_proxy_html на то же самое? Мне нужно исправить URL-адреса в файлах HTML и XML, возвращаемых с сервера.

Следовать за:

Я продолжаю бороться с этим, и я безуспешно пробовал несколько разных решений, включая использование mod_substitute (которое я почему-то неправильно настраиваю, потому что оно никогда не заменяет ничего на что-либо) и использование флага силы mod_proxy_html должен попытаться заставить это делать все файлы по определенному пути.


person John Munsch    schedule 14.08.2012    source источник
comment
Разве сборка mod_proxy_xml не вариант?   -  person Jon Lin    schedule 22.08.2012
comment
@JonLin Не совсем исключено, но для меня это будет последний выбор. У меня нет ни одного из необходимых инструментов, а Apache, который мы используем, взят с сайта, который создает все остальное с помощью Microsoft Visual C++.   -  person John Munsch    schedule 22.08.2012
comment
Как насчет использования mod_sed? Это может быть немного уродливее, чем использование proxy_html.   -  person Jon Lin    schedule 22.08.2012


Ответы (1)


Это старый вопрос, но я только что столкнулся с той же проблемой. Пробовал с mod_proxy_html, скомпилировал mod_proxy_xml, ничего не получилось.

Предложение @JonLin верное, оно работает с mod_sed. Единственный вариант, если mod_sed задокументирован для работы внутри узлов каталога. Если вы объявите Location и сделаете SetOutputFilter вместо AddOutputFilter (для которого требуется MIME-тип), все будет прекрасно работать.

Конфиг который работает:

<Location "/">
    SetOutputFilter Sed
    OutputSed "s,http://internal:80,https://external.com,g"
</Location>
person Murilo Yoshida    schedule 20.08.2015