Définir la date d'expiration d'une image

Galak -  
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'essaie actuellement d'optimiser le temps de chargement des pages de mon site. J'utilise Yslow et Page Speed. Ces deux applications me suggèrent de définir une date d'expiration pour les images (notamment).

J'ai cherché sur le web, mais je n'ai pas trouvé de tuto clair et simple pour faire ce que je veux.

J'ai ajouté les lignes suivantes dans mon fichier .htaccess:
ExpiresActive On
ExpiresByType image/jpeg "access plus 30 days"
ExpiresByType image/png "access plus 30 days"

Mais ça m'a renvoyé une erreur 500 (mon site est sur Free).

Je voudrais savoir s'il est possible de définir la date d'expiration de toutes les images en modifiant seulement le .htaccess, ou s'il faut modifier les entêtes de chaque page html.

Merci de vos réponses,
Galak
A voir également:

7 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Je crois que Free ne gère pas le htaccess. A confirmer toutefois.
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Si, mais avec beaucoup de paramètres propres à eux.
Je déteste ce genre d'hébergeur (comme 1&1 avec leur register_globals)
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Je suis chez 1and1.
Tu fais comment pour le désactiver dans ce cas?
J'étais chez lws avant mais pour l'url rewriting était utilisable seulement avec un truc a eu.
J'avais changé pour cette raison.

Enfin bref dans tout les cas, je sais pas comment faire pour le htaccess avec eux.
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507 > arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention  
 
Pour désactiver quoi ? Les register_globals ?
Il suffit de passer la version de PHP en 5 (par défaut, c'est PHP4).
Ajoute cette ligne dans le .htaccess :
AddType x-mapp-php5 .php

Si tu veux rester sur PHP4, alors crées un php.ini contenant ceci :
register_globals = Off
Et par la même occasion, désactive les magic_quotes en ajoutant cette ligne dans le php.ini (crée-le si tu as pris la première solution pour les register_globals) :
magic_quotes_gpc off
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475 > avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention  
 
Tu en fais quoi du fichier php.ini après ?
J'en ai fais un que j'ai mis avec mon .htaccess mais ça ne fait rien...
Je suis juste censé mettre la ligne :
magic_quotes_gpc off

Ou y'a t-il autre chose a faire ?
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507 > arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention  
 
Le php.ini est à mettre dans chaque répertoire dans lequel tu veux appliquer les changements (cf. ça).

Voici le contenu du php.ini :
magic_quotes_gpc = off
register_globals = off
Et la ligne à mettre dans le .htaccess pour avoir PHP5 :
AddType x-mapp-php5 .php
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475 > avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention  
 
J'ai changé ce que tu m'a dis.
Le phpinfo ici et le PHP.ini ici (on remarque au passage dans le php info qu'il est a priori pris en compte mais le magic_quotes_gpc est sur on dans le phpinfo.
0
Galak
 
Merci pour vos réponses, mais ça ne marche pas.

@arthezius Free accèpte le .htaccess, du moins pour les redirections et la personnalisation de la page 404, vu que ça marche sur mon site.

@avion-f16 j'avais déjà essayé le code provenant de ce site et rien n'y change, j'obtiens toujours l'erreur 500.

Est-ce que quelqu'un à déjà eu ce problème? Est-ce qu'il suffit de changer le .htaccess ou faut-il rajouter du code également dans le html?

Merci,
Galak
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nodapio Messages postés 601 Date d'inscription   Statut Membre Dernière intervention   79
 
dsl de remonter le post mais, toujours pas de solution ?
0
Galak
 
@ nodapio, le seul truc que j'ai trouvé c'est d'utiliser du php.

Dans ma page qui contient l'image
- <img src="image.php">

Contenu du fichier image.php
<?php
header("expires: Thu, 15 Apr 2010 20:00:00 GMT");
header("Content-type: image/jpg");
readfile("image.jpg");
?>

Donc en gros pour chaque image j'ai du créer un fichier php ce qui est un peu lourd. Et j'ai pas franchement vu de différence dans le temps de chargement.

Si quelqu'un a une autre solution (avec htaccess) je suis toujour preneur.

Galak
0
nodapio Messages postés 601 Date d'inscription   Statut Membre Dernière intervention   79
 
Ok, merci.
Non, tampis je vais rester à la bonne vieille méthode...
On pourrait peut-être faire un script qui automatise la création du fichier .php mais non puisque free n'accepte pas le chmod ! ptin !!!
0
tchouye
 
Bonjour,

En m'inspirant de la réponse, voici un fichier php (cacheImage.php) qui cache tous les formats d'images

<?php
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 864000));

header("Content-type: image/".pathinfo($_GET['file'],PATHINFO_EXTENSION));
readfile($_GET['file']);
?>

Un exemple d'appel :
background-image: url('cacheImage.php?file=images/sprite3.png') ;
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Attention à la sécurité avec le script proposé ci-dessus : il permet l'affichage des fichiers PHP de votre site sans les exécuter => vol des informations d'accès à la base de données, facilité pour trouver les failles puisque accès aux sources, etc.
0