ProxyHTMLURLMap ersetzt zweimal angegebene URL

ProxyHTMLURLMap ersetzt zweimal angegebene URL

Um den Titel zu erklären, habe ich dies (dies ist die einzige htmlUrlMap) in meine Conf eingefügt:

ProxyHTMLURLMap / /rp/ticket/

und das in meinem HTML:

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

was wurde erwartet:

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

tatsächliche Ausgabe:

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

das ist komisch ..., mehr zur Konfiguration:

<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>

meine beste Vermutung war, dass <location> die Ursache des Problems ist und es an meine benutzerdefinierte Adresse angehängt wird, aber nach dem Ändern der Adresse in etwas anderes ("/rp/test") anstatt zu bekommen

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

ich habe

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

das ist also nicht das Problem

ich habe Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 auf Windows Server 2008 (x64). Apache mit Xampp installiert (xampp-win32-1.8.1-VC9.zip).

es besteht eine gute Chance, dass ich eine Fehlkonfiguration vorgenommen habe oder einen offensichtlichen Fehler gemacht habe, aber ich konnte das Problem nach zwei Tagen nicht beheben. Ich bin für jede Hilfe dankbar.

---------Bearbeiten:

sieht so aus, als hätte ich überhaupt nicht verstanden, wie das funktioniert. In der geänderten Quelle gab es einen Javascript-Kommentar

// What's the page height?

es wurde geändert in:

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

Antwort1

ich habe mod_proxy_html letztendlich überhaupt nicht verwendet und empfehle niemandem, es zu verwenden ...

die andere Lösung:

1.enable substitute_module (entkommentieren Sie die folgende Zeile in httpd.conf)

LoadModule substitute_module modules/mod_substitute.so

2. Erstellen Sie einen regulären Ausdruck, um die gewünschten Änderungen vorzunehmen. In meinem Fall:

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

3. SUBSTITUTE zu den Ausgabefiltern hinzufügen

SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE

Erledigt.

verwandte Informationen