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

Fermé
Galak - 8 déc. 2009 à 16:03
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 - 12 déc. 2012 à 13:14
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 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
8 déc. 2009 à 17:18
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
8 déc. 2009 à 17:34
Je crois que Free ne gère pas le htaccess. A confirmer toutefois.
0
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
8 déc. 2009 à 17:36
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 jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
8 déc. 2009 à 17:41
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 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496 > arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016
8 déc. 2009 à 18:25
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 jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475 > avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024
8 déc. 2009 à 22:11
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 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496 > arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016
9 déc. 2009 à 13:08
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 jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475 > avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024
9 déc. 2009 à 14:39
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
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 dimanche 23 novembre 2008 Statut Membre Dernière intervention 3 mai 2011 79
23 avril 2010 à 20:48
dsl de remonter le post mais, toujours pas de solution ?
0
@ 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 dimanche 23 novembre 2008 Statut Membre Dernière intervention 3 mai 2011 79
24 avril 2010 à 17:49
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
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 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
12 déc. 2012 à 13:14
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