ProxyHTMLURLMap заменяет URL-адрес, указанный дважды

ProxyHTMLURLMap заменяет URL-адрес, указанный дважды

Чтобы объяснить название, я поместил это (это единственный 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"

так что это не проблема

У меня Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 на WindowsServer 2008 (x64). Установлен Apache с Xampp (xampp-win32-1.8.1-VC9.zip).

Есть большая вероятность, что я неправильно настроил или допустил какую-то очевидную ошибку, но я не смог исправить это за два дня. Любая помощь будет оценена по достоинству.

---------Редактировать:

похоже, я вообще не понял, как это работает. посмотрел на измененный исходник, там был комментарий 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

сделанный.

Связанный контент