Назад | Перейти на главную страницу

Запретить Apache mod_deflate сжимать пустые ответы перенаправления 302

Apache с mod_deflate (бесполезно) сжимает даже пустые (сгенерированные PHP) 302 ответа перенаправления, добавляя 20-байтовое тело ответа. Современные браузеры нормально с этим справляются, но IE6, кажется, случайным образом захлебывается этими 20 байтами.

Есть ли способ настроить mod_deflate для игнорирования пустых ответов (или, по крайней мере, ответов, отличных от 200)?

ПРИМЕЧАНИЕ. Я знаю, что могу отключить выкачивание с помощью SetEnvIfNoCase и BrowserMatch, но мне бы очень хотелось отключить его только из-за того, что он делает неправильно: сжатие пустых ответов.

Я не думаю, что 302 тела ответа apache пусты, скорее у него есть базовое сообщение о перемещении ответа. Следовательно, mod_deflate просто выполняет свою работу.

Проверьте это с помощью telnet или netcat - вот пример netcat:

echo -e "GET / HTTP/1.1\nHost: myhost.com\n\n" | nc myhost.com 80

Если вы хотите это изменить, вы можете использовать ErrorDocument, чтобы сообщить apache, чтобы он обслуживал ваш пользовательский файл для 302 ответов. Ваш файл должен быть достаточно умным, чтобы читать соответствующие переменные среды для выполнения самого перенаправления, но тогда вы можете оставить тело пустым - или еще лучше установить другой заголовок Content-Type, которому mod_deflate не будет соответствовать.