Httpd 替代指令不起作用

Httpd 替代指令不起作用

我不知道为什么替换指令不起作用。反向代理后面的后端应用程序是 Liferay,因为它生成绝对 URL,所以我必须在代理中进行替换。此外,我需要在将请求发送到后端应用程序之前更改主机名。

这是我的 httpd 配置:

 <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>

问题是我总是得到指向 site2.example.com 的结果 (html) url。例如,我有:

<a href="https://site2.example.com/link">Here!</a>

相关内容