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

mod_proxy_html искажает символы, отличные от ASCII

Я установил обратный прокси с mod_proxy, mod_proxy_html (3.1.3) и mod_xml2enc в окне CentOS 6.4.

Прокси-сервер отлично обслуживает целевой сервер, но искажает символы, отличные от ASCII (в моем случае «äöüéàè»).

Я искал в Google всю карту, пытаясь найти решение этой проблемы, но безрезультатно.

Кодировка правильно указана в заголовке ответа и идентична кодировке целевого сервера (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>

Оказывается, «mod_proxy_html» во всем этом был невиновен.

Объявление кодировки через:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

заставил проблему уйти.

Это немного странно, так как Content-Type был правильно установлен в заголовке ответа.