gzip et 1&1

  • Auteur de la discussion Auteur de la discussion thieb03
  • Date de début Date de début
Nouveau WRInaute
bonjour, dabord j'espere que je post au bon endroit, si ce n'est pas le cas veuillez m'en excuser .
voila, mon problème est que je souhaiterai activer la compression gzip pour mon site : http://www.thieb03.fr, mais mon hébergeur est 1&1, et celui visiblement ne l'accepte pas ! j'ai fait un tour sur google , mais rien pour mon modeste niveau de comprehension !
j'ai bien trouvé quelque chose sur lebog MBcreation (http://blog.mb-creations.com/) mais j'ai du zapper quelque chose, et ca ne fonctionne pas, help me please !
 
WRInaute accro
thieb03 a dit:
bonjour, dabord j'espere que je post au bon endroit, si ce n'est pas le cas veuillez m'en excuser .
voila, mon problème est que je souhaiterai activer la compression gzip pour mon site : http://www.thieb03.fr, mais mon hébergeur est 1&1, et celui visiblement ne l'accepte pas ! j'ai fait un tour sur google , mais rien pour mon modeste niveau de comprehension !
j'ai bien trouvé quelque chose sur lebog MBcreation (http://blog.mb-creations.com/) mais j'ai du zapper quelque chose, et ca ne fonctionne pas, help me please !


je suis chez 1et1 et si tu es en serveur PACK PROPERFORMANCE, c'est possible faut juste ruser un peux, c'est le seul solution viable que je connaisse:

tout d'abord créer un fichier dont le nom est .HTACCESS, dans se fichier tu va y mettre:

Code:
AddType x-mapp-php5 .php .php3 .php4 .htm .html .js

    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
    Header set Cache-Control "public, max-age=290304000"
    </FilesMatch>

    <FilesMatch "\.(xml|txt)$">
    Header set Cache-Control "max-age=172800, public, must-revalidate"
    </FilesMatch>

déjà première chose, ça active le PHP5, en suite ça dit à PHP de considérer les extension de fichier .php .php3 .php4 .htm .html .js , que se sont des fichier PHP.

juste le petit défaut, on le vois ça ne concerne pas les fichier CSS.

en suite tu va créer un fichier php.ini et dedans tu mets:
Code:
<?
zlib.output_compression = true
?>

comme tu l'aura compris ça active GZIP pour les fichier d'extension PHP et comme voir plus haut on à fait comprendre au serveur que tout les fichiers .php .php3 .php4 .htm .html .js, sont des fichier PHP alors ceux-ci seront compresser en GZIP.

voila déjà une base de dépare qui fonction.

pour info dans ton entête HTTP tu dois avoir:
HTTP/1.1 200 OK
Date: Thu, 15 Apr 2010 16:47:17 GMT
Server: Apache
Content-Encoding: gzip
Vary: Accept-Encoding
X-Powered-By: PHP/5.2.13
Keep-Alive: timeout=2, max=199
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
 
WRInaute passionné
Héllo, je m'incruste.

Quelle est l'effet de :
Code:
    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
    Header set Cache-Control "public, max-age=290304000"
    </FilesMatch>

    <FilesMatch "\.(xml|txt)$">
    Header set Cache-Control "max-age=172800, public, must-revalidate"
    </FilesMatch>
Je viens d'essayer (je suis sous 1&1 pack perso) et aucune compression n'est faite sur le css, js et image ?
Why ???

Seul la ligne
Code:
AddType x-mapp-php5 .php .php3 .php4 .htm .html .js
couplé au fichier php.ini me donne une compression sur le php et html ..rien de plus .
 
WRInaute accro
tryan a dit:
Héllo, je m'incruste.

Quelle est l'effet de :
Code:
    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
    Header set Cache-Control "public, max-age=290304000"
    </FilesMatch>

    <FilesMatch "\.(xml|txt)$">
    Header set Cache-Control "max-age=172800, public, must-revalidate"
    </FilesMatch>
Je viens d'essayer (je suis sous 1&1 pack perso) et aucune compression n'est faite sur le css, js et image ?
Why ???

Seul la ligne
Code:
AddType x-mapp-php5 .php .php3 .php4 .htm .html .js
couplé au fichier php.ini me donne une compression sur le php et html ..rien de plus .

c'est déjà un début :mrgreen:, pour le reste c'est le contrôle du cache pour qu'au cas ou les fichiers présent sur le serveur, sont identique de ceux du client, si les visiteur on déjà visité le site et que celui-ci n'a pas changer du tout, les parties qui n'auront pas changer ne seront pas retélécharger.

perso j'ai tous de même une compression GZIP du JAVASCRIPT, attention il faut mettre les fichiers dans la plus par des sous répertoire du site, notamment ceux qui contienne les fichier html et php et JS du site.

par contre avec cet méthode, encore que c'est pas trop un problème, je n'arrive pas à avoir de compression GZIP sur le CSS, donc à voir pour trouver la solution.

pour l'instant j'ai ceci:

CSS:
HTTP/1.1 200 OK
Date: Sat, 17 Apr 2010 21:47:40 GMT
Server: Apache
Cache-Control: public, max-age=290304000
Last-Modified: Sat, 20 Mar 2010 16:49:03 GMT
ETag: "e006ffee-44a-4ba4fc7f"
Accept-Ranges: bytes
Content-Length: 1098
Keep-Alive: timeout=2, max=200
Connection: Keep-Alive
Content-Type: text/css

HTML:
HTTP/1.1 200 OK
Date: Thu, 15 Apr 2010 16:47:17 GMT
Server: Apache
Content-Encoding: gzip
Vary: Accept-Encoding
X-Powered-By: PHP/5.2.13
Keep-Alive: timeout=2, max=199
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

JS:
HTTP/1.1 200 OK
Date: Sat, 17 Apr 2010 21:45:25 GMT
Server: Apache
Content-Encoding: gzip
Vary: Accept-Encoding
X-Powered-By: PHP/5.2.13
Keep-Alive: timeout=2, max=200
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

PHP:
HTTP/1.1 200 OK
Date: Sat, 17 Apr 2010 21:44:56 GMT
Server: Apache
Cache-Control: must-revalidate
Content-Encoding: gzip
Expires: Sat, 17 Apr 2010 22:44:57 GMT
Vary: Accept-Encoding
X-Powered-By: PHP/5.2.13
Keep-Alive: timeout=2, max=200
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html


donc oui GZIP n'est pas actif partout, mais concerne au moins .html .php .js et c'est déjà pas mal compte tenue que j'y connais strictement rien, mais ça fonctionne sur la plus part de fichiers et ses ça qui compte en attendant mieux.
 
WRInaute passionné
Merci pour l'info :wink: ,

mipc a dit:
...attention il faut mettre les fichiers dans la plus par des sous répertoire du site, notamment ceux qui contienne les fichier html et php et JS du site
Quelle fichier exactement ? Uniquement le.htaccess ou les 2?
Supposons un dossier "JS", je place le htaccess dans ce dossier ou le php.ini ou les 2 ?

Sinon pour ton css et en supposant qu'il soit dans un dossier nommé "css" :
Dans un .htaccess :
Code:
RewriteEngine on
RewriteBase /

RewriteRule (.*)\.css /css/compressecss.php?file=$1.css [L]
Tu créé ensuite un fichier php nommé "compressecss" contenant :
Code:
<?php
ob_start("ob_gzhandler");
header("Content-type: text/css; charset: ISO-8859-1");
echo (file_get_contents ($file));
?>
Puis tu envois ces 2 fichiers dans le répertoire "css". Fonctionne chez moi et renvoi dans l'entête HTTP Content-Encoding: gzip
 
WRInaute accro
à merci je ne savais pas tu va rire mais je l'ai se script dans compressecss.php ainsi que le script du .haacces

moi je mets les deux fichiers dans tous les répertoires du site et à la racine du FTP aussi , sauf dans le répertoire logs au quel il ne faut surtout pas toucher car ça fait partis du serveur et ça contient les boites E-mail!!!!!

est ce que je peux modifier se script pour lui dire de regarder les fichier CSS qui sont à la racine du serveur FTP ou dans les répertoire du site!!!?

voici mon fichier compressecss.php

Code:
<?php
$file = $_GET['file'];
$ext = $_GET['ext'];
if ($ext == 'css') {
header("Content-type: text/css; charset: ISO-8859-1");
} elseif ($ext == 'js') {
header('Content-Type: application/x-javascript');
}
header("Cache-Control: must-revalidate");
$offset = 60 * 60 ;
$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s",time() + $offset)." GMT";
header($ExpStr);
if ((ini_get('zlib.output_compression') != true) && function_exists('ob_gzhandler')) {
ob_start("ob_gzhandler");
}
echo (file_get_contents ($file));
?>

la partie du code de mon .htacces
Code:
RewriteRule ^(.*).(css|js)$ /compcss.php?file=$1.$2&ext=$2 [L]

je dois modifier quoi pour que celui-ci fonction sur les fichier CSS notamment qui sont à la racine du serveur FTP.

ne pourrait ton pas modifier le php.ini pour que celui-ci compresse tous à la fois les JS les CSS et les HTML et PHP!!!!?
 
WRInaute passionné
Perso, j'en ai aucune idée. ça fait très peut de temps que je m'intéresse à la compression des fichiers et je glane des infos comme je peux et je teste souvent sans succès :?
 
Nouveau WRInaute
leo11173 a dit:
thieb03 a dit:
merci à mipc, j'ai suivi ta procédure et ça fonctionne parfaitement, encore merci .

thieb, peux tu préciser quel pack 1and1 utilises tu ?
Merci.
avec un peu de retard et je m'en excuse : pack pro standard

Date: Mon, 19 Apr 2010 07:36:16 GMT
Server: Apache
Content-Encoding: gzip
Vary: Accept-Encoding
X-Powered-By: PHP/5.2.13
Keep-Alive: timeout=2, max=200
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

200 OK
 
WRInaute occasionnel
Ok merci, il se trouve que j'ai un pack pro standard que j'utilise peu et un pack perso confort.
Ca n'avais pas l'air de fonctionner sur le confort, je tenterai sur le standard ^^.
 
Nouveau WRInaute
J'ai essayé toutes les solutions proposées (php.ini, .htaccess , compressecss,), mon css ou mon js sont bien "comprimés en gzip", mais je perd complétement la mise en page de mon site.

Quelqu'un pourrait-il me donner une idée d'où cela puisse venir?
(Je suis chez 1und1 en Allemagne et mon site est sous joomla.)
 
Nouveau WRInaute
mipc a dit:
à merci je ne savais pas tu va rire mais je l'ai se script dans compressecss.php ainsi que le script du .haacces

moi je mets les deux fichiers dans tous les répertoires du site et à la racine du FTP aussi , sauf dans le répertoire logs au quel il ne faut surtout pas toucher car ça fait partis du serveur et ça contient les boites E-mail!!!!!

est ce que je peux modifier se script pour lui dire de regarder les fichier CSS qui sont à la racine du serveur FTP ou dans les répertoire du site!!!?

voici mon fichier compressecss.php

Code:
<?php
$file = $_GET['file'];
$ext = $_GET['ext'];
if ($ext == 'css') {
header("Content-type: text/css; charset: ISO-8859-1");
} elseif ($ext == 'js') {
header('Content-Type: application/x-javascript');
}
header("Cache-Control: must-revalidate");
$offset = 60 * 60 ;
$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s",time() + $offset)." GMT";
header($ExpStr);
if ((ini_get('zlib.output_compression') != true) && function_exists('ob_gzhandler')) {
ob_start("ob_gzhandler");
}
echo (file_get_contents ($file));
?>

la partie du code de mon .htacces
Code:
RewriteRule ^(.*).(css|js)$ /compcss.php?file=$1.$2&ext=$2 [L]

je dois modifier quoi pour que celui-ci fonction sur les fichier CSS notamment qui sont à la racine du serveur FTP.

ne pourrait ton pas modifier le php.ini pour que celui-ci compresse tous à la fois les JS les CSS et les HTML et PHP!!!!?

Il ne te manquait pas grand chose :
Code:
RewriteRule ^(.*)\.(css|js)$ /compcss.php?file=$1.$2&ext=$2 [L]
(juste un "\" qui manquait :))
 
WRInaute discret
... En fait je me suis aperçu que c'était bon, sauf pour les fichiers xml.

Si vous utilisez cette solution faire attention à cette partie du fichier media.php

Code:
case 'xml':
		$contentType = 'text/xml';
		break;

Et vérifier que contentType correspond bien à celui de votre document xml.
 
Discussions similaires
Haut