Я хочу, чтобы Apache отправлял статические файлы по gzip'у по проводам, но также хочу, чтобы Apache не всегда gzip их снова и снова. Поэтому я подумал, что нельзя будет доставить файл .gz, если он существует. Эта установка:
Структура файла:
static/
|
|--- style.css
|
\--- style.css.gz
И следующее в .htaccess:
правило mod_rewrite:
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]
И этот параметр:
AddEncoding x-gzip .gz
На самом деле, это работает, поскольку файл .gz отправляется вместо .css, если запрос идет /static/style.css
. Проблема только в том, что файл поставляется как «application / x-gzip», а не как «text / css». Использование флага T mod_rewrite не меняет этого. Ни одно не делает явное
AddType text/css .css
У кого-нибудь есть идеи, как мне добиться желаемого поведения? Или это не нужно по какой-то причине, которую я не считал?
РЕДАКТИРОВАТЬ: Существует дополнительная трудность: отправка исходного файла клиентам без поддержки gzip. Кто-нибудь знает, как это может работать?
источник
Ответы:
Решение для отправки правильной версии в браузеры, которые не принимают gzip, будет выглядеть примерно так:
Также есть другой способ изменить тип, а именно:
НТН.
источник
RewriteCond
только совпадают , когда клиент делает принимать GZIP кодирования.Ах, кажется, я нашел решение: флаг T не работает, если установлен на том же правиле, но он работает, если вы тратите его на собственное правило:
Тем не менее, я хотел бы услышать решения и мнения других.
источник