Я не знаю, почему директива замены не работает. Бэкэнд-приложение, которое находится за обратным прокси-сервером, - это Liferay, и поскольку оно генерирует абсолютный URL-адрес, мне нужно сделать замену в прокси. Более того, мне нужно изменить имя хоста перед отправкой запроса в бэкэнд-приложение.
Вот мой httpd conf:
<VirtualHost *:443>
ServerName site1.example.com
SSLEngine On
SSLCertificateFile /etc/httpd/conf/any.example.com.crt
SSLCertificateKeyFile /etc/httpd/conf/any.example.com.key
ProxyPass /Shibboleth.sso/ !
ProxyPass / http://10.0.0.4:8080/
ProxyPassReverse / http://10.0.0.4:8080/
RequestHeader set Host "site2.example.com"
ProxyPreserveHost On # Mandatory for changing the host
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s|site2.example.com|site1.example.com|ni"
</VirtualHost>
Проблема в том, что я всегда получаю URL-адреса результатов (html), которые указывают на site2.example.com. Например, у меня есть:
<a href="https://site2.example.com/link">Here!</a>