[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"theme-db":3,"$fKnz2vuX4bZz1LbUTiuFsvSZ3e07l5_5fqNYp4Tzdhi8":22,"header-db":103,"footer-db":117,"megamenu":133,"$fMk4sJJbopHid0-ZBaBU1264-OI2y8zfR_gOmFxi55O4":189,"$fC2gUzLZvscspmuiJt_eGvXxjj5-t9UbA9heK5CdUtAA":235},{"theme":4},{"colors":5,"typography":13,"ui":17,"defaultColorMode":21},{"primary":6,"secondary":7,"background":8,"foreground":9,"muted":10,"headerBg":11,"footerBg":12,"topBarBg":9,"topBarText":11},"#4F46E5","#0D9488","#F9FAFB","#111827","#6B7280","#ffffff","#020617",{"fontFamily":14,"fontUrl":15,"baseFontSize":16},"Inter, system-ui, sans-serif","https:\u002F\u002Ffonts.googleapis.com\u002Fcss2?family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;0,800;0,900;1,400;1,700&display=swap","16px",{"borderRadius":18,"contentWidth":19,"shadow":20},"lg","7xl",true,"light",{"columns":23},[24,40,70,91],{"title":25,"links":26},"Plateforme",[27,31,34,37],{"label":28,"href":29,"external":30},"Offre Starter (2 500 €)","\u002Foffre-starter",false,{"label":32,"href":33,"external":30},"Devenir Ambassadeur","\u002Fambassadeur",{"label":35,"href":36,"external":30},"Modules PrestaShop","\u002Fmodules",{"label":38,"href":39,"external":20},"CodeMyShop.com","https:\u002F\u002Fcodemyshop.com",{"title":41,"links":42},"Le Synedre",[43,46,49,52,55,58,61,64,67],{"label":44,"href":45,"external":30},"L'histoire","\u002Fsynedre",{"label":47,"href":48,"external":30},"Constitution","\u002Fsynedre\u002Fconstitution",{"label":50,"href":51,"external":30},"L'équipe","\u002Fequipe",{"label":53,"href":54,"external":30},"Le réacteur en direct","\u002Freacteur",{"label":56,"href":57,"external":30},"Le Drill (entraînement)","\u002Fdrill",{"label":59,"href":60,"external":30},"Protocole de réunion","\u002Fsynedre\u002Freunion",{"label":62,"href":63,"external":30},"Les agents IA","\u002Fagents-ia",{"label":65,"href":66,"external":30},"La Conduite","\u002Fsynedre\u002Fconduite",{"label":68,"href":69,"external":30},"Charte plateforme","\u002Fsynedre\u002Fcharte",{"title":71,"links":72},"Ressources",[73,76,79,82,85,88],{"label":74,"href":75,"external":30},"Blog","\u002Fblog",{"label":77,"href":78,"external":30},"Academy","\u002Facademy",{"label":80,"href":81,"external":30},"Dictionnaire","\u002Fdictionnaire",{"label":83,"href":84,"external":30},"Expertise PrestaShop","\u002Fexpertise",{"label":86,"href":87,"external":30},"Flywheel","\u002Fflywheel",{"label":89,"href":90,"external":30},"Manifeste","\u002Fmanifeste",{"title":92,"links":93},"À propos",[94,97,100],{"label":95,"href":96,"external":30},"Alexandre Carette","\u002Fa-propos",{"label":98,"href":99,"external":30},"Dossier de presse","\u002Fpresse",{"label":101,"href":102,"external":30},"Contact","\u002Fcontact",{"header":104},{"logo":105,"topBar":110,"contactEmail":114,"features":115,"navBar":111},{"src":106,"alt":107,"text":95,"href":108,"class":109},"\u002Flogo-ac.svg","Alexandre Carette — Architecte E-commerce Souverain","\u002F","h-10 w-10",{"message":111,"showLanguages":30,"align":112,"languages":113},null,"left",[],"contact@alexandrecarette.fr",{"showSearch":30,"showWishlist":30,"showLogin":20,"showContact":30,"showCart":30,"stickyHeader":20,"headerLayout":116},"inline",{"footer":118},{"theme":119,"description":111,"hours":111,"logo":120,"contact":121,"social":122,"bottomBar":132},"dark",{"src":106,"href":108,"alt":95},{"email":111,"phone":111,"address":111,"cta":111},[123,126,129],{"platform":124,"href":125,"label":124},"linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Falexandre-carette\u002F",{"platform":127,"href":128,"label":127},"malt","https:\u002F\u002Fwww.malt.fr\u002Fprofile\u002Falexandrecarette",{"platform":130,"href":131,"label":130},"github","https:\u002F\u002Fgithub.com\u002Fprest4cafe",{"copyright":111},{"items":134},[135,143,149,155,163,171,177,183],{"id":136,"type":137,"label":138,"href":84,"icon":111,"description":111,"badge":111,"groupTitle":111,"style":111,"gridColumns":111,"cssClass":111,"psCategoryId":111,"showPsChildren":30,"position":140,"children":141,"psChildren":142},41,"link",{"fr":139},"Expertise",0,[],[],{"id":144,"type":137,"label":145,"href":75,"icon":111,"description":111,"badge":111,"groupTitle":111,"style":111,"gridColumns":111,"cssClass":111,"psCategoryId":111,"showPsChildren":30,"position":146,"children":147,"psChildren":148},42,{"fr":74},1,[],[],{"id":150,"type":137,"label":151,"href":36,"icon":111,"description":111,"badge":111,"groupTitle":111,"style":111,"gridColumns":111,"cssClass":111,"psCategoryId":111,"showPsChildren":30,"position":152,"children":153,"psChildren":154},43,{"fr":35},2,[],[],{"id":156,"type":137,"label":157,"href":159,"icon":111,"description":111,"badge":111,"groupTitle":111,"style":111,"gridColumns":111,"cssClass":111,"psCategoryId":111,"showPsChildren":30,"position":160,"children":161,"psChildren":162},44,{"fr":158},"Outils IA","\u002Foutils-ia",3,[],[],{"id":164,"type":137,"label":165,"href":29,"icon":111,"description":111,"badge":111,"groupTitle":111,"style":167,"gridColumns":111,"cssClass":111,"psCategoryId":111,"showPsChildren":30,"position":168,"children":169,"psChildren":170},45,{"fr":166},"Offre Starter ✨",{"highlight":20},4,[],[],{"id":172,"type":137,"label":173,"href":78,"icon":111,"description":111,"badge":111,"groupTitle":111,"style":111,"gridColumns":111,"cssClass":111,"psCategoryId":111,"showPsChildren":30,"position":174,"children":175,"psChildren":176},46,{"fr":77},5,[],[],{"id":178,"type":137,"label":179,"href":96,"icon":111,"description":111,"badge":111,"groupTitle":111,"style":111,"gridColumns":111,"cssClass":111,"psCategoryId":111,"showPsChildren":30,"position":180,"children":181,"psChildren":182},47,{"fr":92},6,[],[],{"id":184,"type":137,"label":185,"href":102,"icon":111,"description":111,"badge":111,"groupTitle":111,"style":111,"gridColumns":111,"cssClass":111,"psCategoryId":111,"showPsChildren":30,"position":186,"children":187,"psChildren":188},48,{"fr":101},7,[],[],{"title":190,"slug":191,"metaDescription":192,"category":193,"tags":194,"difficulty":200,"psVersions":201,"content":205,"faq":206,"tldr":231,"readingTime":180,"generatedAt":232,"publishDate":232,"relatedArticles":233,"sourceCategory":234},"Configurer le cache navigateur via .htaccess sur PrestaShop","configurer-cache-navigateur-htaccess-prestashop","Guide complet pour optimiser les performances PrestaShop avec le cache navigateur via .htaccess : mod_expires, mod_headers et bonnes pratiques.","performance",[195,196,193,197,198,199],"htaccess","cache","mod_expires","mod_headers","optimisation","intermediaire",[202,203,204],"1.6","1.7","8.x","\u003Ch2>Pourquoi configurer le cache navigateur sur PrestaShop\u003C\u002Fh2>\n\u003Cp>Le cache navigateur (browser caching) est l'un des leviers de performance les plus efficaces et les plus simples à mettre en place sur une boutique PrestaShop. Le principe est direct : indiquer au navigateur du visiteur qu'il peut conserver localement certaines ressources (images, CSS, JavaScript, polices) pendant une durée définie, évitant ainsi de les re-télécharger à chaque visite.\u003C\u002Fp>\n\u003Cp>Sur une boutique e-commerce, l'impact est considérable. Un visiteur qui revient sur votre site — ou qui navigue entre plusieurs fiches produits — bénéficie d'un temps de chargement drastiquement réduit. Google PageSpeed Insights et Lighthouse signalent d'ailleurs systématiquement l'absence de cache navigateur comme un problème à corriger.\u003C\u002Fp>\n\u003Ch2>Prérequis : vérifier votre environnement d'hébergement\u003C\u002Fh2>\n\u003Cp>Avant de toucher au \u003Ccode>.htaccess\u003C\u002Fcode>, il faut impérativement vérifier deux choses :\u003C\u002Fp>\n\u003Ch3>1. Votre type d'hébergement vous donne-t-il accès au .htaccess ?\u003C\u002Fh3>\n\u003Cp>Le fichier \u003Ccode>.htaccess\u003C\u002Fcode> permet de modifier la configuration Apache au niveau du répertoire. Mais tous les hébergements ne vous donnent pas la main dessus :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**Serveur dédié \u002F VPS** : accès complet, vous pouvez tout configurer\u003C\u002Fli>\n\u003Cli>**Hébergement mutualisé classique** : le `.htaccess` est généralement disponible, mais certaines directives peuvent être restreintes par l'hébergeur\u003C\u002Fli>\n\u003Cli>**Hébergement cloud managé** : selon la plateforme, l'accès peut être limité voire inexistant — contactez le support technique pour connaître vos options\u003C\u002Fli>\n\u003Cli>**Serveur Nginx** : le `.htaccess` n'existe pas sous Nginx, la configuration se fait dans les fichiers de virtual host (voir section dédiée plus bas)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>2. Les modules Apache nécessaires sont-ils activés ?\u003C\u002Fh3>\n\u003Cp>Le cache navigateur via \u003Ccode>.htaccess\u003C\u002Fcode> repose sur deux modules Apache :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**mod_expires** : définit la durée de vie des ressources via l'en-tête `Expires`\u003C\u002Fli>\n\u003Cli>**mod_headers** : permet de manipuler les en-têtes HTTP, notamment `Cache-Control`\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Sur la plupart des hébergements mutualisés, ces modules sont activés par défaut. Sur un VPS ou un dédié, vous devrez peut-être les activer vous-même.\u003C\u002Fp>\n\u003Cp>#### Vérifier les modules actifs\u003C\u002Fp>\n\u003Cp>Créez un fichier \u003Ccode>phpinfo.php\u003C\u002Fcode> temporaire à la racine de votre PrestaShop :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n&lt;?php\nphpinfo();\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Accédez-y via votre navigateur (\u003Ccode>https:\u002F\u002Fvotre-boutique.com\u002Fphpinfo.php\u003C\u002Fcode>), puis recherchez \u003Ccode>mod_expires\u003C\u002Fcode> et \u003Ccode>mod_headers\u003C\u002Fcode> dans la section \"Loaded Modules\".\u003C\u002Fp>\n\u003Cblockquote>\u003Cp>\u003Cstrong>Sécurité : supprimez immédiatement ce fichier après vérification.\u003C\u002Fstrong> Le \u003Ccode>phpinfo()\u003C\u002Fcode> expose des informations sensibles sur votre serveur (chemins, versions, configuration) qu'un attaquant pourrait exploiter.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Cp>Sur un VPS, vous pouvez aussi vérifier en ligne de commande :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">\napachectl -M | grep -E 'expires|headers'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Si les modules ne sont pas listés, activez-les :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">\nsudo a2enmod expires headers\nsudo systemctl reload apache2\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Configuration du cache navigateur dans le .htaccess\u003C\u002Fh2>\n\u003Cp>PrestaShop génère un \u003Ccode>.htaccess\u003C\u002Fcode> à la racine du site. Vous pouvez y ajouter vos directives de cache, mais attention : \u003Cstrong>PrestaShop peut régénérer ce fichier\u003C\u002Fstrong> lors de certaines opérations en back-office (modification des réglages SEO & URL notamment). Placez vos directives personnalisées dans un bloc clairement commenté pour les retrouver facilement.\u003C\u002Fp>\n\u003Ch3>Configuration recommandée avec mod_expires\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-apache\">\n# --- Cache navigateur - Début ---\n&lt;IfModule mod_expires.c&gt;\n    ExpiresActive On\n    ExpiresDefault \"access plus 1 month\"\n\n    # Images\n    ExpiresByType image\u002Fjpeg \"access plus 1 year\"\n    ExpiresByType image\u002Fpng \"access plus 1 year\"\n    ExpiresByType image\u002Fgif \"access plus 1 year\"\n    ExpiresByType image\u002Fwebp \"access plus 1 year\"\n    ExpiresByType image\u002Fsvg+xml \"access plus 1 year\"\n    ExpiresByType image\u002Fx-icon \"access plus 1 year\"\n\n    # CSS et JavaScript\n    ExpiresByType text\u002Fcss \"access plus 1 year\"\n    ExpiresByType application\u002Fjavascript \"access plus 1 year\"\n    ExpiresByType text\u002Fjavascript \"access plus 1 year\"\n\n    # Polices\n    ExpiresByType font\u002Fwoff2 \"access plus 1 year\"\n    ExpiresByType font\u002Fwoff \"access plus 1 year\"\n    ExpiresByType application\u002Ffont-woff2 \"access plus 1 year\"\n    ExpiresByType application\u002Ffont-woff \"access plus 1 year\"\n\n    # HTML - cache court\n    ExpiresByType text\u002Fhtml \"access plus 0 seconds\"\n&lt;\u002FIfModule&gt;\n# --- Cache navigateur - Fin ---\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Renforcer avec mod_headers et Cache-Control\u003C\u002Fh3>\n\u003Cp>\u003Ccode>mod_expires\u003C\u002Fcode> définit une date d'expiration, mais \u003Ccode>Cache-Control\u003C\u002Fcode> offre un contrôle plus fin :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-apache\">\n&lt;IfModule mod_headers.c&gt;\n    # Ressources statiques : cache agressif\n    &lt;FilesMatch \"\\.(ico|jpe?g|png|gif|webp|svg|css|js|woff2?|ttf|eot)$\"&gt;\n        Header set Cache-Control \"public, max-age=31536000, immutable\"\n    &lt;\u002FFilesMatch&gt;\n\n    # HTML et pages dynamiques : pas de cache navigateur\n    &lt;FilesMatch \"\\.(html|php)$\"&gt;\n        Header set Cache-Control \"no-cache, no-store, must-revalidate\"\n        Header set Pragma \"no-cache\"\n        Header set Expires \"0\"\n    &lt;\u002FFilesMatch&gt;\n&lt;\u002FIfModule&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>La directive \u003Ccode>immutable\u003C\u002Fcode> indique au navigateur que la ressource ne changera jamais tant qu'elle n'a pas expiré — cela évite même les requêtes conditionnelles (\u003Ccode>If-Modified-Since\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Ch3>Pourquoi mettre 1 an sur les assets statiques ?\u003C\u002Fh3>\n\u003Cp>PrestaShop 8.x (et 1.7) utilise un système de cache-busting : les fichiers CSS et JS compilés incluent un hash dans leur nom de fichier (ex : \u003Ccode>theme-abc123.css\u003C\u002Fcode>). Quand vous modifiez le thème et videz le cache PrestaShop, un nouveau fichier avec un nouveau hash est généré. L'ancien fichier en cache navigateur n'est tout simplement plus référencé. Vous pouvez donc mettre une durée d'un an en toute sécurité.\u003C\u002Fp>\n\u003Ch2>Cas particulier : serveur Nginx\u003C\u002Fh2>\n\u003Cp>Si votre PrestaShop tourne derrière Nginx (de plus en plus courant sur les VPS modernes), le \u003Ccode>.htaccess\u003C\u002Fcode> est ignoré. La configuration équivalente se fait dans le bloc \u003Ccode>server\u003C\u002Fcode> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-nginx\">\nlocation ~* \\.(ico|jpg|jpeg|png|gif|webp|svg|css|js|woff2?|ttf|eot)$ {\n    expires 1y;\n    add_header Cache-Control \"public, immutable\";\n    access_log off;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Pensez à recharger Nginx après modification :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">\nsudo nginx -t && sudo systemctl reload nginx\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Vérifier que le cache fonctionne\u003C\u002Fh2>\n\u003Cp>Après mise en place, vérifiez les en-têtes HTTP :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">\ncurl -I https:\u002F\u002Fvotre-boutique.com\u002Fthemes\u002Fvotre-theme\u002Fassets\u002Fcss\u002Ftheme.css\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Vous devez voir des en-têtes similaires à :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-\">\nCache-Control: public, max-age=31536000, immutable\nExpires: Sat, 21 Mar 2027 10:00:00 GMT\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Dans le navigateur, ouvrez les DevTools (F12), onglet Network, et rechargez la page. Les ressources en cache affichent un statut \u003Ccode>(from disk cache)\u003C\u002Fcode> ou \u003Ccode>(from memory cache)\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch2>Les pièges à éviter\u003C\u002Fh2>\n\u003Ch3>Ne pas cacher les pages dynamiques\u003C\u002Fh3>\n\u003Cp>Le panier, le tunnel de commande, les pages compte client : ces contenus sont propres à chaque visiteur. Un cache navigateur sur ces pages provoquerait des comportements erratiques (panier d'un autre client, informations périmées).\u003C\u002Fp>\n\u003Ch3>Attention à la régénération du .htaccess par PrestaShop\u003C\u002Fh3>\n\u003Cp>Quand vous modifiez les paramètres \u003Cstrong>SEO & URL\u003C\u002Fstrong> dans le back-office PrestaShop, le \u003Ccode>.htaccess\u003C\u002Fcode> est régénéré. Vos directives de cache personnalisées seront écrasées. Deux solutions :\u003C\u002Fp>\n\u003Col>\n\u003Cli>**Documentez vos modifications** pour les réappliquer facilement\u003C\u002Fli>\n\u003Cli>**Sur PrestaShop 8.x**, placez vos directives dans un fichier `.htaccess` séparé dans le dossier `\u002Fimg\u002F` ou `\u002Fthemes\u002F` — ces sous-répertoires ne sont pas écrasés par PrestaShop\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Ne pas oublier la compression\u003C\u002Fh3>\n\u003Cp>Le cache et la compression sont complémentaires. Activez aussi la compression Gzip\u002FBrotli :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-apache\">\n&lt;IfModule mod_deflate.c&gt;\n    AddOutputFilterByType DEFLATE text\u002Fhtml text\u002Fcss application\u002Fjavascript application\u002Fjson image\u002Fsvg+xml\n&lt;\u002FIfModule&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Mesurer l'impact\u003C\u002Fh2>\n\u003Cp>Avant et après configuration, testez avec :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**Google PageSpeed Insights** : le diagnostic \"Serve static assets with an efficient cache policy\" doit disparaître\u003C\u002Fli>\n\u003Cli>**GTmetrix** : vérifiez le score \"Browser Caching\"\u003C\u002Fli>\n\u003Cli>**WebPageTest** : comparez le temps de chargement en première visite vs visite répétée\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Sur une boutique PrestaShop typique avec 50+ ressources statiques par page, le gain sur les visites répétées peut atteindre 60 à 80% de réduction du temps de chargement.\u003C\u002Fp>",[207,210,213,216,219,222,225,228],{"q":208,"a":209},"Le .htaccess de PrestaShop est-il écrasé automatiquement ?","Oui, PrestaShop peut régénérer le fichier .htaccess lorsque vous modifiez les paramètres SEO & URL dans le back-office. Les directives de cache que vous avez ajoutées manuellement seront perdues. Il est recommandé de documenter vos modifications pour les réappliquer, ou de placer certaines directives dans les .htaccess des sous-dossiers comme \u002Fimg\u002F ou \u002Fthemes\u002F qui ne sont pas écrasés.",{"q":211,"a":212},"Comment savoir si mod_expires et mod_headers sont activés sur mon hébergement ?","Créez un fichier PHP temporaire contenant phpinfo() à la racine de votre site et recherchez ces modules dans la section Loaded Modules. Sur un VPS, la commande apachectl -M permet de lister les modules actifs. Supprimez impérativement le fichier phpinfo après vérification car il expose des informations sensibles sur votre serveur.",{"q":214,"a":215},"Peut-on configurer le cache navigateur sur un hébergement cloud PrestaShop ?","Sur les hébergements cloud managés, l'accès au .htaccess peut être restreint voire inexistant. Contactez le support technique de votre hébergeur pour connaître les options disponibles. Sur un VPS ou un serveur dédié, vous avez un contrôle total sur la configuration. Si votre besoin en performance est critique, un VPS offre la flexibilité nécessaire pour optimiser finement le cache.",{"q":217,"a":218},"Quelle durée de cache définir pour les fichiers CSS et JavaScript de PrestaShop ?","Une durée d'un an (max-age=31536000) est recommandée. PrestaShop 1.7 et 8.x utilisent un mécanisme de cache-busting qui inclut un hash dans le nom des fichiers compilés. Quand vous modifiez le thème et videz le cache, de nouveaux fichiers avec de nouveaux noms sont générés, rendant les anciennes versions obsolètes sans conflit.",{"q":220,"a":221},"Le cache navigateur fonctionne-t-il avec Nginx ?","Le fichier .htaccess est spécifique à Apache et est complètement ignoré par Nginx. Sur un serveur Nginx, la configuration du cache se fait dans le bloc server du virtual host avec la directive expires et l'en-tête add_header Cache-Control. Le principe reste identique, seule la syntaxe change.",{"q":223,"a":224},"Faut-il cacher les pages du tunnel de commande PrestaShop ?","Non, les pages dynamiques comme le panier, le checkout et l'espace client ne doivent jamais être mises en cache navigateur. Ces contenus sont propres à chaque visiteur et un cache provoquerait des comportements erratiques. Appliquez le cache uniquement aux ressources statiques : images, CSS, JavaScript et polices.",{"q":226,"a":227},"Quelle est la différence entre mod_expires et Cache-Control ?","mod_expires définit une date d'expiration absolue via l'en-tête Expires. Cache-Control, manipulé via mod_headers, offre un contrôle plus granulaire avec des directives comme public, private, immutable ou no-store. En pratique, il est recommandé de configurer les deux pour une compatibilité maximale avec tous les navigateurs et proxies intermédiaires.",{"q":229,"a":230},"Comment vérifier que le cache navigateur est bien actif après configuration ?","Utilisez la commande curl -I suivie de l'URL d'une ressource statique pour inspecter les en-têtes HTTP. Vous devez voir Cache-Control et Expires avec les valeurs configurées. Dans le navigateur, l'onglet Network des DevTools affiche les ressources servies depuis le cache avec le statut from disk cache ou from memory cache.","Le cache navigateur via .htaccess permet de réduire considérablement le temps de chargement des visites répétées sur PrestaShop en configurant mod_expires et mod_headers pour les ressources statiques, avec des durées longues (1 an) grâce au cache-busting natif de PrestaShop.","2026-03-21T14:53:55.000Z",[],"PrestaShop Cloud [FR]",{"academy":236,"blog":237,"expertise":248},[],[238,242,245],{"title":239,"url":240,"score":146,"type":241},"Docker Compose PrestaShop : configuration production prête à déployer","\u002Fblog\u002Fdevops\u002Fdocker\u002Fdocker-compose-prestashop-production","blog",{"title":243,"url":244,"score":146,"type":241},"PrestaShop headless avec Nuxt 3 : pourquoi séparer back et front","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-separation-front-back",{"title":246,"url":247,"score":146,"type":241},"PrestaShop headless : Nuxt 3, pas Next.js — le choix souverain","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-nextjs-souverainete",[]]