ProxyHTMLURLMap은 두 번 제공된 URL을 대체합니다.

ProxyHTMLURLMap은 두 번 제공된 URL을 대체합니다.

제목을 설명하기 위해 내 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

완료.

관련 정보