Eu não sei porque a diretiva substituta não está funcionando. O aplicativo backend que está por trás do proxy reverso é o Liferay e como é gerar url absoluta, tenho que fazer a substituição no proxy. Além disso, preciso alterar o nome do host antes que a solicitação seja enviada ao aplicativo de backend.
Aqui está o meu 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>
O problema é que sempre obtenho os urls de resultado (html) que apontam para site2.example.com. Por exemplo, eu tenho:
<a href="https://site2.example.com/link">Here!</a>