我有一个网站启动并运行(我需要支持IE8)。
服务器:Nginx,框架Symfony2 / PHP / MySQL
问题很简单:IE8(8.0.6)在所有HTML页面上都显示 HTTP 406Content不可接受。
标题(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
上运行。
答案 0 :(得分:0)
此错误与Nginx无关,而是与Symfony 2
和FOSRESTBundle
无关,后者依赖客户端标头通过格式侦听器来响应内容。
<强>解决方案:强>
我更改了配置以禁用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 }