У меня есть куча статических файлов (например, 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.