Hi Xavier, maybe this snippet will help you
Cookie: https://github.com/lkarsten/libvmod-cookie Query String: https://github.com/Dridi/libvmod-querystring default.vcl: import cookie; import querystring; sub vcl_recv: if (req.url ~ "^/random/url") { cookie.parse(req.http.Cookie); cookie.filter_except("cookie_woocommerce"); if ((cookie.isset("cookie_woocommerce")) { return(pass); } else { return(hash); } } // to get the value out of the cookie -> cookie.get("woocommerce") != "false" and something like this set req.url = querystring.sort(req.url); set req.url = querystring.filter(req.url, "query_string"); ... do some magic 2015-12-23 21:05 GMT+01:00 Guillaume Quintard < [email protected]>: > > On Dec 23, 2015 20:51, "Xavier Cardil Coll" <[email protected]> wrote: > > > > No one knows then ? Not even a hint or something ? > > > > 2015-12-23 13:15 GMT+01:00 Xavier Cardil Coll <[email protected]>: > >> > >> Also, how to write a function to bypass cache entirely when a user logs > in ? > >> > >> 2015-12-23 12:39 GMT+01:00 Xavier Cardil Coll <[email protected]>: > >>> > >>> On Nginx cache, you can do this to avoid keep on caching when you add > something to the cart in Woocommerce : > >>> > >>> Skip cache for WooCommerce query string > >>> > >>> if ( $arg_add-to-cart != "" ) { > >>> set $skip_cache 1; > >>> } > >>> > >>> Skip cache when WooCommerce cart is not empty > >>> > >>> if ( $cookie_woocommerce_items_in_cart != "0" ) { > >>> set $skip_cache 1; > >>> } > >>> > >>> How can you do this in Varnish ? With this config, wich was made > specifically for Wordpress + Woocommerce, when you add something to cart, > cache is not disable store wide so you get a mix of cached and non cache > pages, cart gets emptied : http://pastebin.com/TuYeMtUZ > >>> > >>> > >>> -- > >>> > >>> ELSITAR > >>> > >>> > >> > >> > >> > >> -- > >> > >> ELSITAR > >> > >> > > > > > > > > -- > > > > ELSITAR > > > > > > > > _______________________________________________ > > varnish-misc mailing list > > [email protected] > > https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc > > Chill out, most of the people are in vacation :-) > > So, in varnish, by default, if the request contains a cookie, the cache is > bypassed. > > But you can also force a pass, for example if the request contains a > "foo-bar" header like so : > > sub vcl_recv { > if (req.http.foo-bar) { > return (pass); > } > } > > For your needs, look at the query string and cookie vmods, it will allow > to really fine-tune your workflow. > > And should you need more help, we are here :-) > > _______________________________________________ > varnish-misc mailing list > [email protected] > https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc >
_______________________________________________ varnish-misc mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
