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

Можно ли настроить автоматическую декомпрессию в .htaccess?

У меня есть куча статических файлов (например, index.xhtml) в корневом веб-каталоге Apache2. Я не контролирую конфигурацию сервера, но могу изменять .htaccess в корне сети.

Я хотел бы предварительно сжать файлы (например, index.xhtml.gz), чтобы сократить время загрузки и снизить потребление полосы пропускания. Однако, если я сделаю это, пользовательские агенты, которые не поддерживают автоматическое определение кодировки контента, не смогут работать с сайтом.

Я предполагаю, что эти агенты будут очень редки по сравнению с способными агентами, поэтому контент следует обслуживать в распакованном виде. только если агент не отправляет gzip в Accept-Encoding заголовок. Агенты, которые утверждают, что поддерживают gzip, но не поддерживают его, не вызывают беспокойства.

Большинство сайтов, посвященных сжатию, предполагают, что оно выполняется «на лету», чего я бы не хотел, чтобы сократить потребление процессорного времени.

AFAIK, только если у вас есть доступ для запуска сценария CGI на коробке или если вы взломаете Apache.

Но обычная практика - не делать того, о чем вы просите. Обычная практика - хранить файлы в несжатом виде, а затем использовать mod_deflate для сжатия на лету.

#
# Compress most things
#
<Location />
  SetOutputFilter DEFLATE
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

  # Don't compress images
  SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

  # Make sure proxies don't deliver the wrong content
  Header append Vary User-Agent env=!dont-vary
</Location>

Это в моем httpd.conf, вероятно, его придется немного изменить для .htaccess.