81 votes

Comment spécifier l'en-tête "Vary: Accept-Encoding" dans .htaccess

Google PageSpeed dit que je devrais "spécifier un en-tête Vary: Accept-Encoding" pour JS et CSS. Comment est-ce que je fais ceci dans .htaccess?

90voto

aularon Points 6305

Je suppose que ça veut dire que vous activer la compression gzip pour vos css et js fichiers, parce que cela va permettre au client de recevoir à la fois gzip contenu encodé et un simple contenu.

C'est la façon de le faire dans 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>

Et voici comment ajouter l' Vary Accept-Encoding - tête: [src]

<IfModule mod_headers.c>
  <FilesMatch "\.(js|css|xml|gz)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
</IfModule>

L' Vary: - tête raconte la que le contenu servi pour cette url va varier en fonction de la valeur d'une certaine tête de la demande. Ici, il dit qu'il va servir un contenu différent pour les clients qui disent qu'ils Accept-Encoding: gzip, deflate (un en-tête de requête), que le contenu servi à des clients qui n'envoient pas de cet en-tête. Le principal avantage de cette, autant que je sache, c'est de laisser intermédiaire de la mise en cache proxy savent qu'ils ont besoin d'avoir deux versions différentes de la même url, car de tels changements.

4voto

Matt D. Points 31

J'ai peur Aularon ne fournissent pas suffisamment de mesures pour compléter le processus. Avec un peu d'essais et d'erreurs, j'ai pu réussir à activer Gzipping sur mon WHM serveur.

Ci-dessous sont les étapes suivantes:

  • Exécuter EasyApache dans WHM, sélectionnez Dégonfler au sein de l'Exhaustive liste d'Options, et de reconstruire le serveur.

  • Une fois cela fait, allez dans la Configuration des Services de >> Configuration d'Apache >> Inclure l'Éditeur >> Post VirtualHost Inclure, sélectionnez Toutes les Versions, puis collez le mod_headers.c et mod_headers.code c (énumérés ci-dessus dans Aularon post) sur le dessus de l'autre dans le champ de saisie.

  • Une fois enregistré, j'ai été voir un 75.36% des données d'économies en moyenne! Vous pouvez exécuter un avant et un après test en utilisant ce HTTP outil de Compression pour voir de vos propres résultats: http://www.whatsmyip.org/http_compression/

Espérons que cela fonctionne pour vous tous!

  • Matt

3voto

Tom Points 21

Pour gzip vos fichiers de police aussi!

 add "x-font/otf x-font/ttf x-font/eot"
 

un péché:

 AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml x-font/otf x-font/ttf x-font/eot
 

1voto

user1473179 Points 21

Cela me rendait folle, mais il semble que l'édition du aularon manquait le côlon après "Vary" . Ainsi, changer "Vary Accept-Encoding" en "Vary: Accept-Encoding" résolu le problème pour moi.

J'aurais commenté ci-dessous le post, mais il ne semble pas que cela me le permette.

Quoi qu'il en soit, j'espère que cela évitera à quelqu'un les mêmes problèmes que moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X