Google PageSpeed dice que debo "Especificar un encabezado Vary: Accept-Encoding" para JS y CSS. ¿Cómo hago esto en .htaccess?Cómo especificar el encabezado "Vary: Accept-Encoding" en .htaccess
Respuesta
Supongo que significa que habilita la compresión gzip para sus archivos css y js, porque eso permitirá que el cliente reciba tanto contenido codificado en gzip como contenido simple.
Ésta es la manera de hacerlo en apache2:
<IfModule mod_deflate.c>
#The following line is enough for .js and .css
AddOutputFilter DEFLATE js css
#The following line also enables compression by file content type, for the following list of Content-Type:s
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml
#The following lines are to avoid bugs with some browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
Y aquí es cómo agregar el encabezado Vary Accept-Encoding
: [src]
<IfModule mod_headers.c>
<FilesMatch "\.(js|css|xml|gz)$">
Header append Vary: Accept-Encoding
</FilesMatch>
</IfModule>
La cabecera Vary:
cuenta la que el contenido servido para esta URL varían de acuerdo con el valor de un determinado encabezado de solicitud. Aquí dice que servirá contenido diferente para los clientes que dicen que Accept-Encoding: gzip, deflate
(un encabezado de solicitud), que el contenido servido a los clientes que no envían este encabezado. La principal ventaja de esto, AFAIK, es permitir que los proxies intermedios de caché sepan que necesitan tener dos versiones diferentes de la misma url debido a dicho cambio.
No creo que sea esto. Mi JS y CSS ya están comprimidos. PageSpeed sigue quejándose. – StackOverflowNewbie
Edité la respuesta, compruébalo. – aularon
Creo que mod_deflate es [supposed] (http://httpd.apache.org/docs/2.0/mod/mod_deflate.html#proxies) para enviar el encabezado Vary de forma predeterminada. –
Me temo que Aularon no proporcionó suficientes pasos para completar el proceso. Con un poco de prueba y error, pude habilitar satisfactoriamente Gzipping en mi servidor WHM dedicado.
A continuación se presentan los pasos:
Run EasyApache dentro de WHM, seleccione desinflan dentro de la lista de opciones para exhaustivos, y reconstruir el servidor.
Una vez hecho esto, Servicios Goto Configuración >> Configuración >> Apache Incluir Editor >> Mensaje VirtualHost Incluir, seleccione todas las versiones, y luego pegar el código mod_headers.c y mod_headers.c (mencionados anteriormente en el post de Aularon) en la parte superior de en otro dentro del campo de entrada.
Una vez guardado, ¡estaba viendo un ahorro de datos del 75.36% en promedio! Puede ejecutar un antes y después de la prueba mediante el uso de esta herramienta de compresión HTTP para ver sus propios resultados: http://www.whatsmyip.org/http_compression/
Hope esto funciona para todos!
- Matt
Esto me estaba volviendo loco, pero parece que la edición de aularon faltaba el colon después de "Vary"
. Así que cambiar el "Vary Accept-Encoding"
al "Vary: Accept-Encoding"
me solucionó el problema.
Hubiera comentado debajo de la publicación, pero no parece que me lo permita.
De todos modos, espero que esto le ahorre a alguien el mismo problema que estaba teniendo.
¿Estás seguro de que esto hace la diferencia? En los 2.2 documentos, ninguno de los ejemplos incluye los dos puntos: http://httpd.apache.org/docs/2.2/mod/mod_headers.html –
¡Para comprimir también sus archivos de fuentes!
add "x-font/otf x-font/ttf x-font/eot"
como en:
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml x-font/otf x-font/ttf x-font/eot
No hay necesidad de especificar o incluso comprobar si el archivo es/ha comprimido, se puede enviar a todos los archivos, en cada petición.
Narra proxy indirectos cómo hacer coincidir las futuras cabeceras de petición para decidir si la respuesta en caché se puede utilizar en lugar de solicitar un nuevo una del servidor de origen.
<ifModule mod_headers.c>
Header unset Vary
Header set Vary "Accept-Encoding, X-HTTP-Method-Override, X-Forwarded-For, Remote-Address, X-Real-IP, X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-Port, X-Forwarded-Server"
</ifModule>
- la
unset
es corregir algunos errores en los mayores de hosting GoDaddy, opcionalmente.
si alguien necesita esto para NGINX
fichero de configuración aquí es el fragmento:
location ~* \.(js|css|xml|gz)$ {
add_header Vary "Accept-Encoding";
(... other headers or rules ...)
}
muchas horas para aclarar lo que era. Por favor, lea this post para obtener los códigos avanzados .HTACCESS
y aprenda lo que hacen.
Se puede utilizar:
Header append Vary "Accept-Encoding"
#or
Header set Vary "Accept-Encoding"
- 1. Establecer Vary: Aceptar encabezado de codificación (nginx)
- 2. .htaccess: Cómo "Especificar un validador de caché"?
- 3. ¿Cuál es la función del encabezado HTTP "Vary: Accept"?
- 4. Cómo especificar el "encabezado de solicitud HTTP" en OpenURI
- 5. App Engine: cómo configurar el encabezado "Vary: Accept-Encoding" para archivos estáticos
- 6. Vary: * incorrectamente añadido a la respuesta de encabezado HTTP (asp.net MVC3)
- 7. Cómo desactivar la compresión Apache gzip para algunos archivos multimedia en el archivo .htaccess?
- 8. Cómo especificar el "carácter
- 9. Agregue un encabezado a cada solicitud utilizando .htaccess
- 10. ¿Cómo especificar el url y el encabezado en la red troncal para usar el método crud en mi modelo?
- 11. Cómo especificar el encabezado de caducidad de HTTP? (ASP.NET MVC + IIS)
- 12. Cómo configurar upload_max_filesize en .htaccess?
- 13. .htaccess en subdirectorio 'anulando' padre htaccess
- 14. .htaccess redirige el rendimiento
- 15. ¿Cómo agrego un tipo MIME a .htaccess?
- 16. ¿cómo funciona el encabezado en php?
- 17. Cómo agregar el encabezado soap en java
- 18. Cómo cambiar el encabezado en WebClient
- 19. Cómo congelar el encabezado GridView?
- 20. El uso adecuado de KeepAlive en Apache .htaccess
- 21. ¿Cómo especificar rangos en YAML?
- 22. ¿Cómo proxy el encabezado http_x_ssl_client_s_dn?
- 23. ¿Cómo especificar validates_uniqueness_of en Rspec?
- 24. ¿Cómo especificar el número de puerto en el emulador?
- 25. libros en htaccess
- 26. .htaccess RewriteRule no funciona en el subdirectorio
- 27. IIS7 - Especificar el encabezado de longitud de contenido en ASP provoca el error de "restablecimiento de conexión"
- 28. cómo especificar el constructor del complemento Qt?
- 29. Cómo especificar el directorio para NDK_MODULE_PATH
- 30. uso RewriteMap en htaccess
No estoy seguro de por qué esto se cerró, simplemente porque no se trata de un lenguaje de programación no quiere decir que no está relacionado con la codificación. –
@ BlueRaja-DannyPflughoeft Estoy de acuerdo, esto ha sido visto más de 65100 veces, así que creo que es un tema bien buscado, sin mencionar que respondo a las preguntas de htaccess todos los días. –
Sé que esto es aguantar, pero el encabezado 'Vary: Accept-Encoding' indicará al navegador que almacene en la memoria caché una versión de la página basada en el encabezado' Content-Encoding'. Debería ver http://stackoverflow.com/questions/1975416/trying-to-understand-the-vary-http-header y https://developers.google.com/speed/docs/best-practices/caching?hl = sv & csw = 1 # LeverageProxyCaching –