
為了解釋標題,我把這個(這是唯一的 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>
這很奇怪......,更多配置:
<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 (xampp-win32-1.8.1-VC9.zip) 安裝 apache。
我很可能配置錯誤或犯了一些明顯的錯誤,但兩天後我無法修復此問題。
- - - - -編輯:
看起來我根本不明白這是如何運作的。查看修改後的原始程式碼,有一個 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?
答案1
我最終根本沒有使用 mod_proxy_html。
其他解決方案:
1.啟用substitute_module(取消httpd.conf中以下行的註解)
LoadModule substitute_module modules/mod_substitute.so
2.創建一個正規表示式來更改你想要的內容,在我的例子中:
Substitute "s|\"/|/rp/ticket/|iq"
3.將SUBSTITUTE加入輸出過濾器
SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE
完畢。