
제목을 설명하기 위해 내 conf에 다음(유일한 htmlUrlMap)을 넣었습니다.
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를 설치했습니다.
구성을 잘못했거나 명백한 실수를 했을 가능성이 높지만 이틀 후에도 이 문제를 해결할 수 없었습니다. 도움을 주시면 감사하겠습니다.
---------편집하다:
나는 이것이 어떻게 작동하는지 전혀 이해하지 못한 것 같습니다. 수정된 소스를 보니 자바스크립트 주석이 있었습니다.
// 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. 대체_모듈 활성화(httpd.conf에서 다음 줄의 주석 처리 제거)
LoadModule substitute_module modules/mod_substitute.so
2. 내 경우에는 원하는 것을 변경하는 정규식을 만듭니다.
Substitute "s|\"/|/rp/ticket/|iq"
3. 출력 필터에 SUBSTITUTE 추가
SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE
완료.