Назад | Перейти на главную страницу

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?

В итоге я вообще не использовал mod_proxy_html. и я никому не предлагаю его использовать ...

Другое решение:

1. включить replace_module (раскомментируйте следующую строку в httpd.conf)

LoadModule substitute_module modules/mod_substitute.so

2. Создайте регулярное выражение, чтобы изменить то, что вы хотите, в моем случае:

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

3. добавить ЗАМЕНА в выходные фильтры

SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE

сделано.