ProxyHTMLURLMap不以正确的方式重写URL

时间:2017-01-06 14:56:59

标签: apache proxy reverse-proxy mod-proxy thelounge

我有一个在http://www.example.com:3000/运行的Web-IRC-Client(The Lounge)(没有HTTPS),访问该链接工作正常。当我指定端口时,我可以毫无问题地使用Web客户端。现在,我不想每次都输入端口,这就是我尝试使用Apache2配置文件设置反向代理的原因。问题是客户端正在从错误的位置加载资产(CSS,JS,图像)。有关详细信息,请参见下文我认为ProxyHTMLURLMap是修复它的正确方法,但不能让它起作用。我还应该注意,我正在将所有非www-http流量重定向到www-https版本。

<VirtualHost *:443>
[...]

  SSLProxyEngine on
  ProxyPass /irc http://www.example.com:3000/
  ProxyPassReverse /irc http://www.example.com:3000/
  ProxyHTMLURLMap http://www.example.com:3000/ /irc
</VirtualHost>

当我访问https://www.example.com/irc时,我只是使用我的javascript,css等获取网站文本。检查源代码显示,它正在尝试从以下位置加载资源:

https://www.example.com/css/bootstrap.css

哪个错了。相反,它应该从:

加载

https://www.example.com/irc/css/bootstrap.css

非常感谢任何建议!

编辑1:更多信息:使用末尾的斜杠(https://www.example.com/irc/)浏览到https代理。图像和CSS加载,但客户端本身没有响应并显示&#34;这需要更长的时间,可能存在连接问题。&#34;即使一切都结束了。

编辑2:其他用户建议添加ProxyHTMLExtended On,但它也没有帮助。

1 个答案:

答案 0 :(得分:0)

即使这个问题很老,我也想把这个留在这里:

https://serverfault.com/a/685326

注意: 如果仍然无法使用,则可以将其添加到您的配置中:

ProxyHTMLEnable On