Il mio obiettivo è "annotare" determinati attributi di querystring e i relativi valori in modo che la vernice non varii la cache tra gli URL.Estrarre le coppie di attributi/valori di querystring in modo che la vernice non varii la cache da loro
Esempio:
Url 1: http://foo.com/someproduct.html?utm_code=google&type=hello
Url 2: http://foo.com/someproduct.html?utm_code=yahoo&type=hello
Url 3: http://foo.com/someproduct.html?utm_code=yahoo&type=goodbye
Nell'esempio di cui sopra voglio whitelist "utm_code", ma non "tipo" Così, dopo il primo URL viene colpito voglio vernice per servire quel contenuto memorizzato nella cache al secondo URL.
Tuttavia, nel caso del terzo url, il valore di "tipo" dell'attributo è diverso in modo che dovrebbe essere una mancanza di cache di vernice.
Ho provato i 2 metodi di seguito (trovato su un articolo di aiuto drupal che non riesco a individuare in questo momento) che non sembra funzionare. Potrebbe essere perché ho sbagliato l'espressione regolare.
# 1. strip out certain querystring values so varnish does not vary cache.
set req.url = regsuball(req.url, "([\?|&])utm_(campaign|content|medium|source|term)=[^&\s]*&?", "\1");
# get rid of trailing & or ?
set req.url = regsuball(req.url, "[\?|&]+$", "");
# 2. strip out certain querystring values so varnish does not vary cache.
set req.url = regsuball(req.url, "([\?|&])utm_campaign=[^&\s]*&?", "\1");
set req.url = regsuball(req.url, "([\?|&])foo_bar=[^&\s]*&?", "\1");
set req.url = regsuball(req.url, "([\?|&])bar_baz=[^&\s]*&?", "\1");
# get rid of trailing & or ?
set req.url = regsuball(req.url, "[\?|&]+$", "");
Mi dispiace, volevo spiegare che il mio codice non sembra funzionare per utm_campaign, utm_content, ecc utm_code era solo un "esempio generico" ho fatto. Alla fine ho trovato qualcosa che funzionava e lo aggiungo alla modifica originale ... Grazie per il tuo contributo! – runamok
In realtà l'hai quasi avuto. Ma fallisce nel momento in cui hai seguito male_ dato che le partite avide e alla fine fanno sì che il prossimo su non corrisponda. necessario: ([\? | &]) Utm _ (\ w +) = [^ & \ s] * – dalore