29
2012
Activer la-compression gzip et PHP5 sur un hebergement mutualisé
Hi everybody,
Il y a quelques années d’ici j’avais un hébergement chez 1&1 et celui-ci n’avais pas de la compression Gzip d’activer pour des fichiers HTML , CSS, JS …
C’était donc relativement embêtant d’un coté performance/optimisation, en PHP il y a bien la fonction « ob_start » qui permet de gzip le transfère de la ressource mais pas dans un fichier statique.
Exemple:
En cherchant un peu sur le net j’avais trouvé une solution assez sympa mais un peu lourde (qui comprenais une énorme faille de sécurité) , étant un vrai Open-sourceur j’ai donc reporter l’erreur en la corrigeant. Cependant depuis le site mb-creations est devenu OUT.
Je me permet donc de publier ce billet afin que cette astuce reste disponible sur internet.
Il faut rajouter cette règle-ci dans le .htaccess:
# BEGIN GZIPRewriteEngine On RewriteRule (.*)\.(css|js|xml|txt|)$ /media.php?file=$1.$2 [L] # END GZIP
Et ajouter le script « media.php » dans la racine de votre hébergement:
Voilà faite en bonne usage !
Articles relatifs
14 commentaires + Ajouter un commentaire
Laisser un commentaire
Test d’hébergeurs
Articles récents
- Installer un active Directory sur un Windows Serveur 2008R2/
- Domaines compagnons (cPanel) et les noms de domaines français
- Importer une base de données fort grande sans PHPmyAdmin
- Nouveautes chez PlanetHoster!
- Nom de domaine en attente chez PlanetHoster. Que faire ?
- Les managers OVH sont fermés suite à un problème de base de données
- Sauvegarde cPanel remplacé par R1Soft/Idera chez PlanetHoster
- Perturbation sur l’infrastructure française (Attaque DDOS)
- Nouvelle version du WHM/cPanel 11.34 de très gros changements !
- Configurer Aptana Studio 3 et un hébergement cPanel (FTP/Permission)
- Sécuriser votre modem SpeedTouch 706
- Comparaison des nouvelles offres « Hybride » mutualisé chez PlanetHoter
Commentaires récents
- Menshix dans Ligne verte et image doublée dans le streaming
- gilles Salmon dans Redimmensionner les partitions par défaut de cPanel /Plesk..
- youssef dans Installer OpenERP 6.1 dans Eclipse avec un environnement Python 2.7
- Sécuriser son serveur sous CentOS/WHM dans Sécuriser un serveur Centos via SSH
- djoze dans Activer le zoom avec le trackpad sur Firefox sur Mac OSX

Un article de





[...] Activer la-compression gzip et PHP5 sur un hebergement mutualisé [...]
Merci pour ton astuce
Salut,
Je cherchais l’astuce mais effectivement le site MB CREATIONS n’existe plus. C’est donc avec bonheur que j’ai trouvé l’info sur ton blog mais peux-tu expliquer l’histoire du media.php ?
Je suppose que le fichier contient le code nécessaire à l’encryption des données ? si oui, tu peux mettre le code source ou le proposer en téléchargement ?
Merci
Jérémy
Bonjour Jeremy,
Le code PHP a été reposté
A+
Je dois être aveugle mais je ne le vois pas
Merci en tout cas!
Le cache CloudFlare n’a pas encore rafraichi la page, je te donne le code via les commentaires :
< ?php $parts = explode('.', $_GET['file']); $extension = $parts[count($parts) - 1]; switch ($extension) { /* Mise à jour de sécurité suite au commentaire de Quentin_C */ case 'php': exit(0); break; case 'css': $contentType = 'text/css'; break; case 'js': $contentType = 'text/javascript'; break; case 'xml': $contentType = 'text/xml'; break; case 'htm': case 'html': $contentType = 'text/html'; break; default: $contentType = 'text/plain'; break; } if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start(); if (file_exists($_GET['file'])) { header("Last-Modified: " . gmdate("D, d M Y H:i:s",time()-36000) . " GMT"); header("Content-type: $contentType; charset: UTF-8"); echo (file_get_contents($_GET['file'])); ob_end_flush(); } else { header("HTTP/1.0 404 Not Found"); }Voilà
Bravo, ça marche très bien! Il faut juste ne pas oublier de mettre le ?> à la fin et supprimer l’espace entre le < et le ?php au début. C'est évident mais ça coûte rien de le dire
Un grand merci, cela fait des semaines que je cherchais à compresser mes CSS.
Et merci a Jacques pour ça précision!
Merci beaucoup pour cette astuce qui permet de compresser des pages sur serveur mutualisé Amen.
@Gestion crise : comment as-tu fait sur ton serveur mutualisé Amen ? As-tu fait quelque chose d’autre que l’ajout du code dans le .htaccess et la création du media.php. As-tu des pages statiques sur ton site ou dynamiques (je n’ai aucune page dynamique) ? Pour ma part, plusieurs heures que je tente d’implémenter cette solution (support Amen peu aidant), mais cela ne marche toujours pas.
Personnellement je n’ai pas d’hébergement amen … :’(
@Gestion crise, si tu passes sur le site, ma question reste en suspens car chez moi, toujours pas possible de fonctionner. Support niv.2 d’Amen vient de m’indiquer un lien des directives Apache interdites chez eux: https://controlpanel.amen.fr/.legacy/hosting/web/info_htaccess.html
Certainement intéressant à connaître avant de s’escrimer sur certaines solutions.
Leur solution: ‘renommer tous les fichiers html en .php et rajouter la ligne suivante en début de chaque fichier: ‘.
Merci toute la réecriture des pages, leur renommage, la question des fichiers de styles et scripts, et la réindexation dans les moteurs…
@Xooot: jusqu’ici, je lisais beaucoup de gens se plaindre d’Amen, alors que perso, 3 hébergements de sites commerciaux chez eux depuis 7ans en mutualisé / Linux, et tout allait. Cette année, j’ai commencé à prendre de l’Ovh pour de nouveaux sites. On verra ce qu’eux donnent.
Problème résolu. Et l’utilisation du script media.php avec la modif de .htaccess fonctionne effectivement sur Amen mutualisé sous Linux. Un doublon de RewriteEngine On qui trainait et qui empechait le bon fonctionnement. Comme quoi il n’est pas bon de bosser trop tard avant de se coucher. Merci pour la solution!
Bonjour, et merci beaucoup pour ce partage
le résultat de votre compression est-il le meme qu’avec cet ajout dans htaccess :
AddOutputFilterByType DEFLATE application/javascript text/css
?
merci