thank you so much for this information, I will get hands down with it. 2015-12-23 22:35 GMT+01:00 Tobias Honacker <[email protected]>:
> 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 >> > > -- ELSITAR
_______________________________________________ varnish-misc mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
