У меня есть сервер IIS 7.5, настроенный с PHP 5.4.5, работающим через FastCgi. PHP настроен на возврат данных в кодировке gzip, если клиент это поддерживает.
Моя проблема в том, что когда я выдаю заголовок 303 See Other из PHP, IIS вставляет некоторый HTML перед данными, закодированными в gzip. Для большинства браузеров это не проблема, они просто следуют заголовкам, однако мои клиенты сообщают, что перенаправления не работают через их прокси-сервер Cisco Scansafe, и я думаю, что это может быть причиной.
Вот пакетные данные, полученные с помощью Wireshark:
GET / HTTP/1.1
Host: [OMITTED]
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36
Accept-Encoding: gzip,deflate
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Cookie: PHPSESSID=[OMITTED]
HTTP/1.1 303 See Other
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Location: http://[OMITTED]/reports/
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Fri, 10 Oct 2014 08:15:16 GMT
Content-Length: 246
<head><title>Document Moved</title></head>
<body><h1>Object Moved</h1>This document may be found <a HREF="http://[OMITTED]/reports/">here</a></body>......4....I..(.M.U.OF-.O..K./J-./S.+.(0U.s.....+S..O............5,...
Байты, закодированные с помощью gzip, декодируются сами по себе и содержат контент, который был выведен PHP, но с помощью IIS HTML весь HTTP-пакет не будет декодироваться должным образом, что может вызвать его отклонение Scansafe.
Как я могу сказать IIS, чтобы он прекратил это делать?