ProxyHTMLURLMap reemplaza la URL dada dos veces

ProxyHTMLURLMap reemplaza la URL dada dos veces

Para explicar el título, puse esto (este es el único htmlUrlMap) en mi configuración:

ProxyHTMLURLMap / /rp/ticket/

y esto en mi html:

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

lo que se esperaba:

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

salida real:

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

lo cual es extraño..., más de configuración:

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

Mi mejor suposición fue que la <ubicación> es la causa del problema y se agrega a mi dirección personalizada, pero después de cambiar la dirección a algo diferente ("/rp/test") en lugar de obtener

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

obtuve

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

Así que, ese no es el problema

Tengo Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 en WindowsServer 2008 (x64). Apache instalado con Xampp (xampp-win32-1.8.1-VC9.zip).

Es muy probable que haya configurado mal o haya cometido algún error obvio, pero no pude solucionarlo después de dos días. Se agradece cualquier ayuda.

---------Editar:

Parece que no entendí cómo funciona esto en absoluto. mirando la fuente modificada había un comentario de javascript

// What's the page height?

fue cambiado a:

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

Respuesta1

Terminé sin usar mod_proxy_html en absoluto y no recomiendo a nadie que lo use...

la otra solución:

1.habilite el módulo_sustituto (elimine el comentario de la siguiente línea en httpd.conf)

LoadModule substitute_module modules/mod_substitute.so

2.Crea una expresión regular para cambiar lo que quieras, en mi caso:

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

3.agregue SUSTITUTO a los filtros de salida

SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE

hecho.

información relacionada