IE8 - 内容不可接受 Symfony 2 应用程序

IE8 - Content Not Acceptable Symfony 2 App

我有一个网站运行(我需要支持 IE8)。

服务器:Nginx,框架Symfony2/PHP/MySQL

问题很简单:IE8 (8.0.6) 在所有 HTML 页面上显示 HTTP 406Content 不可接受

Headers (Nginx)

Cache-Control:no-cache
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html; charset=UTF-8
Date:Mon, 25 Apr 2016 15:23:46 GMT
Server:nginx/1.6.2
Transfer-Encoding:chunked
X-Debug-Token:d7e68f

HTML(2 个版本,不工作)

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
    <meta name="robots" content="noindex, nofollow">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Htm 2</title>
    <link rel="icon" type="image/x-icon" href="/favicon.ico" />
</head>
<body>
   ... hi
</body>
</html>


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="robots" content="noindex, nofollow">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Htm</title>
    <link rel="icon" type="image/x-icon" href="/favicon.ico" />
</head>
<body>
   ... hi
</body>
</html>

我已经阅读了大量有关此事的资料,但找不到任何线索。之前的网站版本适用于 IE8,运行 适用于 Apache 2

此错误与 Nginx 无关,但与 Symfony 2FOSRESTBundle 相关,它们依赖客户端 headers 通过格式侦听器协商响应内容。

解法:

我更改了配置以禁用 FOSRest 以禁用 HTML 页面的格式侦听器。

fos_rest:
    format_listener:
        rules:
            - { path: '^/rest', priorities: [ 'json' ], fallback_format: json, prefer_extension: false }
            #- { path: ^/, priorities: [ 'text/html', '*/*' ], fallback_format: html, prefer_extension: true }
            - { path: '^/', stop: true }