Here With Me

Le blog technique d'Amaury Balmer qui parle de technologies open-source, mais surtout de WordPress !

WP Super Cache et le bug de la compression Gzip, solution temporaire

| 4 Commentaires

Les blogs à haute fréquentation sous ne rendent pas la vie facile au webmaster… Car quoi qu’on en dise, possède plein davantage sauf celui d’être économique en terme de performances.

Pour y remédier, une solution simple et peu couteuse à mettre en place consiste à installer le plugin WP Super , de mon ami Donncha. (mainteneur de WPmu au passage)

Malheureusement, il se trouve que le plugin bien que très efficace provoque un bug assez aléatoire.

Pour comprendre la source du bug, petit rappel technique sur le fonctionnement de WP Super Cache.

  1. Un visiteur consulte une page X
  2. Si la page n’est pas en cache, WP Super Cache créé 2 copies :
    • 1 exemplaire HTML
    • 1 exemplaire compressé Gz
  3. Le visiteur suivant, qui consulte la même page X, va vérifier la présence d’une copie.
    • Dans un premier temps, la copie compressée Gz
    • Dans un second temps, la copie HTML
    • Sinon, il charge WordPress pour créer la copie (on revient au point 2)
  4. Et ainsi de suite.

Petite précision, mais pas importante ici, les copies HTML et Gz ont une durée de vie. Cette dernière est spécifiée dans les options du plugin. Une fois la durée dépassée, les 2 copies sont supprimées pour obliger une nouvelle création.

Revenons au bug, il est assez simple. Lors de la première consultation, WP Super Cache va créer une copie compressée avec , malheureusement avec la version actuelle (0.7.0.1), il ne vérifie pas l’ de l’archive.

De ce fait, il lui arrive de créer aléatoirement des archives corrompues. On tombe alors sur des pages comme:

L'art moderne selon WordPress

L'art moderne selon WordPress

Pour éviter ce bug, tout en profitant du cache HTML classique de WP Super Cache, rien de plus simple… Il suffit de désactiver la compression GZ dans les options du plugin.

Cependant pour des raisons assez mystérieuses, le bug se reproduit par moment. Pour être sur que le bug ne se reproduit, je vous conseille de désactiver la redirection du fichier .htaccess concernant la compression Gz.

C’est-à-dire les lignes suivantes:

RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} !.*s=.*
RewriteCond %{QUERY_STRING} !.*p=.*
RewriteCond %{QUERY_STRING} !.*attachment_id=.*
RewriteCond %{QUERY_STRING} !.*wp-subscription-manager=.*
RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz [L]

En supprimant cette partie, vous pouvez être sûr que les pages avec hiéroglyphes, c’est terminé !

4 Commentaires

  1. Sur tes conseils j’avais déjà désactivé la compression et maintenant je viens de mettre les lignes en question en commentaires : l’art moderne, oui, sur ma page, non ! ;)

  2. Bonsoir,

    La version 0,8 corrige t-elle ces bugs ?
    je cherche à optimiser au max, je suis déjà
    passé par une retouche du code du header et footer
    (lien clair de suite)

    Ayant pour objectif de transformer mon blog
    en site complet, il me faut de la vitesse,
    je sais déjà qu’un temps de chargement trop
    long pousse à l’abandon ;)

    Jérémy

  3. Pingback : Lighttpd and WP Super Cache « The Zash Blag

Répondre à 如何戒烟 Annuler la réponse.

Champs Requis *.