57 votes

Comment faire pour que la compression gzip d'Apache fonctionne ?

Je n'arrive pas à faire en sorte que mon site utilise la compression gzip.

J'ai récemment regardé ceci vidéo par Chris Coyier sur css-tricks.com. Dans la vidéo, il explique comment activer la compression gzip pour accélérer le fonctionnement des sites Web.

Conformément à ses instructions, je me suis connecté à github via html5boilerplate.com, j'ai copié le code de compression gzip de leur fichier .htaccess, je l'ai collé dans mon propre fichier et je l'ai téléchargé sur mon site.

Je l'ai testé via gzipwtf.com et cela ne semble pas fonctionner. Quelqu'un peut-il m'aider ?

Mon fichier .htaccess ressemble à ceci :

# ----------------------------------------------------------------------
# Trim www
# ----------------------------------------------------------------------

RewriteEngine On
RewriteCond %{HTTP_HOST} !^orbitprint.com$ [NC]
RewriteRule ^(.*)$ http://orbitprint.com/$1 [L,R=301]

# ----------------------------------------------------------------------
# Gzip compression
# ----------------------------------------------------------------------

<IfModule mod_deflate.c>

  # Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
  <IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
      SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
      RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
    </IfModule>
  </IfModule>

  # Compress all output labeled with one of the following MIME-types
  <IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE application/atom+xml \
                                  application/javascript \
                                  application/json \
                                  application/rss+xml \
                                  application/vnd.ms-fontobject \
                                  application/x-font-ttf \
                                  application/xhtml+xml \
                                  application/xml \
                                  font/opentype \
                                  image/svg+xml \
                                  image/x-icon \
                                  text/css \
                                  text/html \
                                  text/plain \
                                  text/x-component \
                                  text/xml
  </IfModule>

</IfModule>

1 votes

Pouvez-vous ajouter quelques détails sur votre serveur, par exemple les en-têtes de réponse ? .htaccess ne fonctionne que pour les serveurs Apache, et si votre serveur Apache n'a pas le mod_filter.c activé, la compression ne fonctionnera pas.

0 votes

Date : Tue, 11 Sep 2012 10:46:19 GMT Server : Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 X-Powered-By : PHP/5.2.9 Expires : Thu, 19 Nov 1981 08:52:00 GMT Cache-Control : no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma : no-cache Connection : close Transfer-Encoding : chunked Content-Type : text/html

2voto

Shree Sthapit Points 118

Si votre hôte Web passe par le panneau C, activez la compression G ZIP sur le panneau C d'Apache.

Allez dans le CPanel et vérifiez l'onglet logiciel.

Auparavant, Optimiser le site web fonctionnait mais maintenant une nouvelle option est disponible, à savoir "MultiPHP INI Editor".

Sélectionnez le nom de domaine que vous voulez compresser.

Faites défiler vers le bas jusqu'à ce que vous trouviez la compression de sortie zip et activez-la.

Maintenant, vérifiez à nouveau la compression G ZIP.

Vous pouvez également suivre le tutoriel vidéo. https://www.youtube.com/watch?v=o0UDmcpGlZI

2voto

Ryan Fitzer Points 1

J'ai rencontré ce problème en utilisant la même configuration .htaccess. J'ai réalisé que mon serveur servait les fichiers javascript en tant que text/javascript au lieu de application/javascript . Une fois que j'ai ajouté text/javascript à la AddOutputFilterByType déclaration, gzip a commencé à fonctionner.

Quant à savoir pourquoi le javascript était servi en tant que text/javascript : il y avait un AddType 'text/javascript' js en haut de mon fichier racine .htaccess. Après l'avoir supprimée (elle avait été ajoutée par erreur), javascript a commencé à servir en tant que application/javascript .

1voto

Raugaral Points 111

Dans mon cas, seule cette ligne a fonctionné

SetOutputFilter DEFLATE

1voto

Amuk Saxena Points 706

Activez la compression via .htaccess

Pour la plupart des gens qui lisent ces lignes, la compression est activée par l'ajout d'un code dans un fichier appelé .htaccess sur leur hôte/serveur Web. Cela signifie qu'il faut aller dans le gestionnaire de fichiers (ou dans l'endroit où vous allez pour ajouter ou télécharger des fichiers) de votre hébergeur.

Le fichier .htaccess contrôle de nombreuses choses importantes pour votre site.

Le code ci-dessous doit être ajouté à votre fichier .htaccess...

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

Enregistrez le fichier .htaccess, puis actualisez votre page Web.

Vérifiez si votre compression fonctionne à l'aide de la fonction Outil de compression Gzip .

1voto

GlupiJas Points 196
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

<IfModule mod_deflate.c>
# Insert filters
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml

# Drop problematic browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>

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