Expert prestashop

Compression gzip chez 1and1 et ovh la galère !

Je voulais améliorer les performance de mon annuaire d’annuaires et j’ai donc voulu compresser mes fichier css et javascript en faisant une petite compression gzip.

J’ai donc suivis ce tutoriel et hop en 5 minute tout fonctionnai à merveille… mais en local… une fois sur mon hébergement j’avais une belle erreur 500.. beurk.

En fait, 1and1 n’autorise pas la modification des valeur PHP avec un htaccess il propose par contre d’utiliser un php.ini . Mais comme je suis quelqu’un de tétu j’ai trouvé une autre solution qui me plait mieux :). Je vous la livre ici:

Je créé un fichier .htacces que je place dans le dossier qui contient mes fichiers css (/css)


RewriteEngine On
RewriteRule (.*)\.css /css/compressecss.php?file=$1.css [L]

Je créé ensuite un fichier php compressecss.php que je place lui aussi dans mon dossier css (/css)


ob_start("ob_gzhandler");
header("Content-type: text/css; charset: ISO-8859-1");
echo (file_get_contents ($file));

Et voila maintenant tout mes fichiers css seront compressés et je gagne de la bande passante :).
Pour les fichiers javascript il suffit de faire pareil en modifiant text/css par text/javascript

Partager cet article:
    
            

Commentaires

14 commentaires pour “Compression gzip chez 1and1 et ovh la galère !”

  • Greg

    Salut

    Tout d’abord, merci pour ton script. Je l’ai mis en place sur le site d’un client. Après avoir retravaillé mes liens relatifs vers mon css, j’ai reussi à tout faire marcher.
    Par contre d’après tools.pingdom.com je ne gagne rien en kb. Tu as pu tester un avant / apres ?

    Merci
    greg

  • maniT4c

    J’ai en effet tester sur l’un de mes sites et j’avais un gain minime pour les css et un peu mieux pour les scripts. Par contre j’utilise firebug et l’onglet réseau pour tester.

  • Meudah

    Salut ! Alors là chapo ! Ton script fonctionne à merveille et me permet une compression de plus de 50%. Je passe de 238ko à 123ko. Une compression de plus de 50%.
    Il fonctionne à merveille si vous souhaitez compresser les librairies/frameworks – Js/Css comme Jquery, Prototype, Mootools, etc.

    Merci à toi !

  • Dado Webmaster

    Je fais partie de ces gens qui bidouillent avec des bouts de code récupérés sans les comprendre et j’ai mis un moment à faire fonctionner celui-ci, jusqu’à ce que je pense à enlever /css/ dans le chemin du fichier php, puisque les deux fichiers sont au même niveau :
    RewriteEngine On
    RewriteRule (.*)\.css compressecss.php?file=$1.css [L]

    Voilà, si ça peut peut-être servir à d’autres pilleurs-bidouilleurs… En tout cas merci Vince ! Avec la récente apparition des performances du site dans les webmasters tools de Google et la mise en avant de leur add-on “Page Speed”, qui l’accompagne, cette page devrait être pas mal visitée…

  • Topper

    Merci pour ce bout de code très utile. :-)

  • Dado Webmaster

    Depuis l’autre jour, je me suis aperçu d’un inconvénient de ta solution, Vince, c’est que le validateur de css du w3c ne comprend plus rien.
    Cela m’a poussé à continuer mes recherches, et apparemment il y a aussi ça qui fonctionne : trois lignes dans le .htaccess à la racine pour activer la compression gzip sur les css et les js sur un serveur mutualisé ovh :

    SetOutputFilter DEFLATE

  • Dado Webmaster

    euh, pardon, le bout de code, c’est ça (mes balises sont interprétées dans mon premier commentaire):

    <Files ~ « \.(css|js)$ »>
    SetOutputFilter DEFLATE
    </Files>

  • Tiankris

    J’ai egalement ajouté ceci dans le fichier compressecss.php (ou compressjs.php par la même), car l’ajout d’un fichier .htaccess dans le dossier ou se trouve mon fichier css me faisait perdre les dates d’expiration:

    Ce qui donne pour le fichier compressecss.php:

  • maniT4c

    @dado très intéressant Dado merci beaucoup pour cette info j’essaierai. J’avoue ne pas m’être posé la question du validateur car je le passe en règle général avant la compression. je fait ma compression en dernier.

  • Le routard

    Merci pour l’astuce, ca fera une optimisation supplémentaire :)

  • Liagre Sebastien

    @ Tiankris: dans ton post du 20 decembre tu note : Ce qui donne pour le fichier compressecss.php: mais plus rien ensuite je pense qu’il manque un bout du message
    si tu pouvais le poster, merci.

  • elo

    Et un gzencode des CSS et JS ne serait pas tout simplement beaucoup plus rapide ?

  • maniT4c

    @Elo gzencode va forcer la compression gzip tandi que ob_gzhandler va dans un premier temps vérifier le type de compression supporter par le navigateur puis utiliser la plus appropriée ou aucune si le navigateur ne supporte pas la compression.

  • Darakk

    J’ai essayé la solution de « Dado Webmaster », mais chez 1and1 aucun changement, le validateur w3c toujours en panique :s

  • Laisser un commentaire