
Я настроил обратный прокси с mod_proxy, mod_proxy_html (3.1.3) и mod_xml2enc на компьютере с CentOS 6.4.
Прокси-сервер отлично обслуживает целевой сервер, но искажает символы, не входящие в набор ASCII (в моем случае «äöüéàè»).
Я облазил всю карту, пытаясь найти решение этой проблемы, но безуспешно.
Кодировка правильно указана в заголовке ответа и идентична кодировке целевого сервера (utf-8). Я также пробовал явно задать кодировку, используемую xml2enc, через:
xml2EncDefault utf-8
но безрезультатно.
Я запускаю прокси-сервер на виртуальном хосте со следующей конфигурацией прокси-сервера:
ProxyRequests off
ProxyHTMLLinks a href
ProxyHTMLLinks area href
ProxyHTMLLinks link href
ProxyHTMLLinks img src longdesc usemap
ProxyHTMLLinks object classid codebase data usemap
ProxyHTMLLinks q cite
ProxyHTMLLinks blockquote cite
ProxyHTMLLinks ins cite
ProxyHTMLLinks del cite
ProxyHTMLLinks form action
ProxyHTMLLinks input src usemap
ProxyHTMLLinks head profile
ProxyHTMLLinks base href
ProxyHTMLLinks script src for
ProxyHTMLLinks iframe src
ProxyPass /foo/ http://someserver.com/
ProxyPassReverse /foo/ http://www.someserver.com/
<Location /foo/>
SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyPassReverse /
ProxyPassReverseCookiePath / /foo
ProxyHTMLURLMap http://www.someserver.com /foo
ProxyHTMLURLMap http://someserver.com /foo
RequestHeader unset Accept-Encoding
</Location>
решение1
Оказывается, «mod_proxy_html» во всем этом невиновен.
Объявление кодировки через:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
заставили проблему исчезнуть.
Это немного странно, так как «Content-Type» был правильно установлен в заголовке ответа.