Quiero que Apache envíe archivos estáticos gzip'ed por cable, pero también quiero que Apache no siempre los gzip una y otra vez. Así que pensé si no sería posible entregar un archivo .gz si existiera. Esta configuración:
Estructura de archivo:
static/
|
|--- style.css
|
\--- style.css.gz
Y lo siguiente en un .htaccess:
regla mod_rewrite:
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]
Y esta configuración:
AddEncoding x-gzip .gz
En realidad, esto funciona en la medida en que se envía el archivo .gz en lugar del .css, si la solicitud va a /static/style.css
. El único problema es que el archivo se entrega como "application / x-gzip" y no como "text / css". El uso de la bandera T de mod_rewrite no altera esto. Tampoco un explícito
AddType text/css .css
¿Alguien tiene una idea, cómo podría lograr el comportamiento deseado? ¿O es innecesario por alguna razón que no calculé?
EDITAR: Hay una dificultad adicional: enviar el archivo original a clientes sin soporte de gzip. ¿Alguien tiene una idea de cómo podría funcionar esto?
fuente
Respuestas:
Una solución para enviar la versión correcta a los navegadores que no aceptan gzip sería algo como:
Además, hay otra forma de cambiar el tipo, a saber:
HTH.
fuente
RewriteCond
único partido cuando el cliente hace aceptar la codificación gzip.Ah, parece que encontré una solución: el indicador T no funciona si se establece en la misma regla, pero seguro que sí, si lo gastas como una regla propia:
Aún así me gustaría escuchar las soluciones y opiniones de los demás.
fuente