Сделал я запрос:
curl -i 'http://site/page'
И попытался я в PHP отправить header 400 с контентом и получил:
HTTP/1.1 400 Bad Request
Server: nginx/1.4.6 (Ubuntu)
Date: Fri, 28 Aug 2015 12:04:13 GMT
Content-Type: text/html
Content-Length: 583
Connection: close<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.4.6 (Ubuntu)</center>
</body>
</html>
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
Т.е. 400-ый хедер nginx переслал мне правильно, но каково было мое удивление не увидеть моего контента.
А значит, скорее всего проблема в Вашем Nginx-конфиге, а именно - в нем присутствует обработка 400-го статуса, например:
server {
...
error_page 400 /index.php;
...
}
Если все равно не получилось, то включение настройки proxy_intercept_errors может помочь
p.s. если, Вы попытаетесь найти откуда nginx подставляет:
a padding to disable MSIE and Chrome friendly error page
то найти файл не получится и отключить это нельзя, т.к. все эти строки прописаны в исходниках nginx-a:
0035 static u_char ngx_http_msie_padding[] =
0036 "<!-- a padding to disable MSIE and Chrome friendly error page -->" CRLF
0037 "<!-- a padding to disable MSIE and Chrome friendly error page -->" CRLF
0038 "<!-- a padding to disable MSIE and Chrome friendly error page -->" CRLF
0039 "<!-- a padding to disable MSIE and Chrome friendly error page -->" CRLF
0040 "<!-- a padding to disable MSIE and Chrome friendly error page -->" CRLF
0041 "<!-- a padding to disable MSIE and Chrome friendly error page -->" CRLF
0042 ;
Всем удачки!
Комментарии