Compression gzip chez 1and1 et ovh la galère !
Classé dans : Programmation
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)
<?php
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
Tags : css, gzip, javascript
- Permalien
- maniT4c
- 24 juil 2008 9:01
- Commentaires (14)

le 29 octobre 2008 à 23:48
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
le 30 octobre 2008 à 9:34
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.
le 25 novembre 2008 à 11:50
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 !
le 7 décembre 2009 à 23:27
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…
le 16 décembre 2009 à 16:01
Merci pour ce bout de code très utile.
le 19 décembre 2009 à 0:54
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
le 19 décembre 2009 à 0:58
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>
le 20 décembre 2009 à 0:09
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:
le 20 décembre 2009 à 10:07
@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 2 janvier 2010 à 7:09
Merci pour l’astuce, ca fera une optimisation supplémentaire
le 23 juin 2010 à 10:34
@ 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.
le 29 juin 2010 à 23:39
Et un gzencode des CSS et JS ne serait pas tout simplement beaucoup plus rapide ?
le 30 juin 2010 à 7:56
@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.
le 6 février 2011 à 15:17
J’ai essayé la solution de « Dado Webmaster », mais chez 1and1 aucun changement, le validateur w3c toujours en panique :s