Apache反向代理删除<meta http-equiv =“Content-type”content =“text / html; charset = utf-8”/>

时间:2015-06-09 09:46:13

标签: sharepoint-2010 reverse-proxy mod-proxy-html

这是我在这里的第一篇文章。

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

设置为:

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

为了使这项服务公开,我在DMZ上的Red Hat EL 6.0上运行了一个apache 2.2服务器。 apache将vhost配置为Reverse proxy,以允许来自外部的连接。

由于我发现了一些链接问题,我不得不编译并集成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:

AddDefaultCharset utf-8

ProxyHTMLCharsetOut utf-8

ProxyHTMLMeta

虚拟主机配置如下(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 

任何帮助将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:0)

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

xml2EncDefault utf-8