{"id":950,"date":"2015-01-21T13:05:55","date_gmt":"2015-01-21T12:05:55","guid":{"rendered":"http:\/\/blog.jeremm.fr\/?p=950"},"modified":"2015-01-22T14:56:49","modified_gmt":"2015-01-22T13:56:49","slug":"varnish-4-creation-du-header-expires-a-partir-du-cache-control","status":"publish","type":"post","link":"https:\/\/blog.jeremm.fr\/?p=950","title":{"rendered":"Varnish 4 : Cr\u00e9ation du header Expires \u00e0 partir du Cache-Control"},"content":{"rendered":"<p>Sur varnish 3, il fallait ajouter du code c pour ajouter le header Expires correspondant au max-age du Cache-Control :<br \/>\n<a title=\"blog.jeremm.fr\/?p=573\" href=\"\/?p=573\" target=\"_blank\">Varnish : transformer le Cache-Control : max-age en Expires<\/a><\/p>\n<p>Maintenant une ligne suffit :<br \/>\nDans le vcl_backend_response :<\/p>\n<pre lang=\"cpp\">\r\nif (beresp.http.cache-control ~ \"max-age=\" ) {\r\n        set beresp.http.Expires = \"\" + (now + std.duration(regsub(beresp.http.cache-control,\"max-age=([0-9]+).*$\",\"\\1\")+\"s\", 0s));\r\n}\r\n<\/pre>\n<p>ou dans le vcl_deliver :<\/p>\n<pre lang=\"cpp\">\r\nif (resp.http.cache-control ~ \"max-age=\" ) {\r\n        set resp.http.Expires = \"\" + (now + std.duration(regsub(resp.http.cache-control,\"max-age=([0-9]+).*$\",\"\\1\")+\"s\", 0s));\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Sur varnish 3, il fallait ajouter du code c pour ajouter le header Expires correspondant au max-age du Cache-Control : Varnish : transformer le Cache-Control : max-age en Expires Maintenant une ligne suffit : Dans le vcl_backend_response : if (beresp.http.cache-control ~ \u00ab\u00a0max-age=\u00a0\u00bb ) { set beresp.http.Expires = \u00ab\u00a0\u00a0\u00bb + (now + std.duration(regsub(beresp.http.cache-control,\u00a0\u00bbmax-age=([0-9]+).*$\u00a0\u00bb,\u00a0\u00bb\\1&Prime;)+\u00a0\u00bbs\u00a0\u00bb, 0s)); } ou <a href='https:\/\/blog.jeremm.fr\/?p=950' class='excerpt-more'>[&#8230;]<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[67,68,9],"_links":{"self":[{"href":"https:\/\/blog.jeremm.fr\/index.php?rest_route=\/wp\/v2\/posts\/950"}],"collection":[{"href":"https:\/\/blog.jeremm.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jeremm.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jeremm.fr\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jeremm.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=950"}],"version-history":[{"count":6,"href":"https:\/\/blog.jeremm.fr\/index.php?rest_route=\/wp\/v2\/posts\/950\/revisions"}],"predecessor-version":[{"id":962,"href":"https:\/\/blog.jeremm.fr\/index.php?rest_route=\/wp\/v2\/posts\/950\/revisions\/962"}],"wp:attachment":[{"href":"https:\/\/blog.jeremm.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jeremm.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jeremm.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}