2

这是我在此的头一篇博文。

我已经在论坛中搜索了相关问题,但似乎没有一个结果可以解决我的问题。

设置是:

在内部客户网络的 IIS 7 上部署了 MS Sharepoint 2010。这似乎在内部网络中表现正确。

为了公开这项服务,我在 DMZ 上的 Red Hat EL 6.0 上运行了一个 apache 2.2 服务器。apache 有一个配置为反向代理的虚拟主机,以允许来自外部的连接。

由于我发现了一些链接问题,我不得不编译和集成 mod_proxy_html 模块来解析这些链接。

问题是我在从外部(通过 apache)访问时看到奇怪的字符。这是由于 Apache 擦除了一个 html 元标记:

从 MZ 内部,html 代码开始:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
    <html dir="ltr" lang="es-ES"> 

    <head><meta http-equiv="X-UA-Compatible" content="IE=10" /><meta name="GENERATOR" content="Microsoft SharePoint" /><meta http-equiv="Content-type" content="text/html; charset=utf-8" /><meta http-equiv="Expires" content="0" /><meta name="msapplication-TileImage" content="/_layouts/15/images/SharePointMetroAppTile.png" /><meta name="msapplication-TileColor" content="#0072C6" /><title>

但是,当从外部访问时,html 代码会启动:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html dir="ltr" lang="es-ES">

<head><meta http-equiv="X-UA-Compatible" content="IE=10" /><meta name="GENERATOR" content="Microsoft SharePoint" /><meta http-equiv="Expires" content="0" /><meta name="msapplication-TileImage" content="/_layouts/15/images/SharePointMetroAppTile.png" /><meta name="msapplication-TileColor" content="#0072C6" /><title> 

缺少标记:meta http-equiv="Content-type" content="text/html; charset=utf-8"。

我已经尝试添加到我的 httpd.conf:

添加默认字符集 utf-8

ProxyHTMLCharsetOut utf-8

ProxyHTMLMeta 开启

virtualhost配置如下(130.177.97.99是属于后端的IP):

<VirtualHost bpocenter-hp:5445> 
    ServerName www.bpocenter-hp.com 
    SSLProtocol -all +TLSv1 
    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 
    SSLEngine on 
    SSLProxyEngine on 
    SSLCertificateChainFile /etc/httpd/cert_bpo-hp/intermediate.crt 
    SSLCertificateKeyFile /etc/httpd/cert_bpo-hp/server.key 
    SSLCertificateFile /etc/httpd/cert_bpo-hp/server.crt 

    ProxyHTMLEnable On 

    SetOutputFilter proxy-html 

    ProxyHTMLLogVerbose On 
    ProxyHTMLExtended on 

    ProxyHTMLMeta On 

    TransferLog "|/usr/serveis/app/apache/bin/rotatelogs /serveis/logs/bpocenter-hp/access_log 86400" 
    ErrorLog "|/usr/serveis/app/apache/bin/rotatelogs /serveis/logs/bpocenter-hp/error_log 86400" 

    ProxyRequests Off 

    ProxyPass / http://130.177.97.99:8065/ ttl=900 timeout=900 Keepalive=On 
    ProxyPassReverse / http://130.177.97.99:8065/ 
    RequestHeader      unset  Accept-Encoding 

    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 

    ProxyHTMLEvents onclick ondblclick onmousedown onmouseup \ 
            onmouseover onmousemove onmouseout onkeypress \ 
            onkeydown onkeyup onfocus onblur onload \ 
            onunload onsubmit onreset onselect onchange 

    SetOutputFilter proxy-html 
    ProxyHTMLURLMap http://130.177.97.99:8065 https://www.bpocenter-hp.com:5445 

任何帮助,将不胜感激。

谢谢。

胡安

4

1 回答 1

1

我使用以下方法解决了这个问题:

xml2EncDefault utf-8

于 2015-09-24T07:55:23.720 回答