ProxyHTMLURLMapreplace两次给定的URL

解释标题,我已经把这个(这是唯一的htmlUrlMap)在我的conf:

ProxyHTMLURLMap / /rp/ticket/ 

这在我的HTML:

 <script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script> 

预期的是:

 <script type="text/javascript" src="/rp/ticket/js/jquery-1.8.3.min.js"></script> 

实际产量:

 <script type="text/javascript" src="/rp/ticket/rp/ticket/js/jquery-1.8.3.min.js"></script> 

这是奇怪的…,更多的configuration:

 <Location /rp/ticket/> ProxyHTMLEnable On ProxyHTMLBufSize 102400 ProxyHTMLExtended On ProxyHTMLStripComments Off ProxyHTMLDocType "<!DOCTYPE html>" ProxyHTMLMeta Off ProxyHTMLCharsetOut * ProxyHTMLURLMap / /rp/ticket/ ProxyPass http://ticket.domain.com/ ProxyPassReverse http://domain.com/ SetOutputFilter INFLATE;proxy-html;DEFLATE RequestHeader unset Accept-Encoding </Location> 

我最好的猜测是<location>是问题的原因,它被附加到我的自定义地址,但在改变地址到不同的地方(“/ rp / test”)而不是获得

 src="/rp/ticket/rp/test" 

我有

 src="/rp/test/rp/test" 

所以这不是问题

我在WindowsServer 2008(x64)上安装了Apache / 2.4.3(Win32)OpenSSL / 1.0.1c PHP / 5.4.7。 用Xampp安装apache(xampp-win32-1.8.1-VC9.zip)。

有一个很好的机会,我错过configuration或已经做了一些明显的错误,但我无法解决这个问题后两天。任何帮助表示赞赏。

– – – – -编辑:

看起来像我不明白这是如何工作的。 看着修改后的源代码有一个JavaScript评论

 // What's the page height? 

它被改为:

 /rp/ticket/rp/rp/ticket/ticket/rp/ticket//rp/ticket/rp/rp/ticket/ticket/rp/ticket/ What's the page height? 

我最终没有使用mod_proxy_html,我不build议任何人使用它…

其他解决scheme:

1.enable substitute_module(在httpd.conf中取消注释以下行)

 LoadModule substitute_module modules/mod_substitute.so 

2.创build一个正则expression式来改变你想要的,就我而言:

 Substitute "s|\"/|/rp/ticket/|iq" 

3.添加SUBSTITUTE输出filter

 SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE 

完成。