Ok, eu encontrei a resposta sozinho. Você só precisa adicionar a seguinte linha na diretiva Substitute:
AddOutputFilterByType SUBSTITUTE text/html
Eu tenho um site em execução em um contêiner docker e criei um VirtualHost no apache do host que está fazendo um proxy reverso para o contêiner (na porta 8280 do host). Então eu tenho:
<VirtualHost *:443>
ServerName www.example.com
DirectoryIndex index.php index.html
SetOutputFilter SUBSTITUTE,DEFLATE
ProxyPass / http://localname:8280/
ProxyPassReverse / http://localname:8280/
Substitute "s|http://localname:8280/|https://www.example.com/|i"
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateKeyFile /path-to/privkey.pem
SSLCertificateFile /path-to/cert.pem
SSLCertificateChainFile /path-to/chain.pem
<Proxy *>
Order deny,allow
Allow from all
Allow from localhost
</Proxy>
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
ServerAlias www.example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
O proxy funciona bem, tenho uma resposta ao escrever www.example.com no navegador, mas tenho todos os links apontando para o link ( como mostrado no console do navegador) e um erro de conteúdo misto, é por isso que eu coloquei a diretiva Substitute, mas não está funcionando.
Estou usando a configuração para mod_substitute da documentação do apache.
Mas isso não está funcionando, nada muda. O contêiner docker é baseado na imagem bitnami / apache com configuração padrão.
Qualquer ajuda seria apreciada.