Eu quero que o Apache envie arquivos estáticos compactados por zíper, mas também quero que o Apache nem sempre os compacte repetidamente. Por isso, pensei que não seria possível entregar um arquivo .gz, se existir. Esta configuração:
Estrutura do arquivo:
static/
|
|--- style.css
|
\--- style.css.gz
E o seguinte em um .htaccess:
regra mod_rewrite:
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]
E essa configuração:
AddEncoding x-gzip .gz
Na verdade, isso funciona na medida em que o arquivo .gz é enviado em vez do .css, se a solicitação for enviada /static/style.css
. O problema é apenas que o arquivo é entregue como "application / x-gzip" e não como "text / css". Usar o sinalizador T de mod_rewrite não altera isso. Nem um explícito
AddType text/css .css
Alguém tem uma idéia, como eu poderia alcançar o comportamento desejado? Ou é desnecessário, por algum motivo, que não considero?
EDIT: Há uma dificuldade adicional: Enviar o arquivo original para clientes sem suporte ao gzip. Alguém tem uma idéia de como isso poderia funcionar?
fonte
Respostas:
Uma solução para enviar a versão correta para navegadores que não aceitam o gzip seria algo como:
Além disso, há outra maneira de alterar o tipo, a saber:
HTH.
fonte
RewriteCond
corresponder apenas quando o cliente faz aceitar a codificação gzip.Ah, parece que encontrei uma solução: o sinalizador T não funciona se definido na mesma regra, mas com certeza funciona, se você usar uma regra própria:
Ainda assim, gostaria de ouvir as soluções e opiniões de outras pessoas.
fonte