मेरा लक्ष्य कुछ क्वेरीस्ट्रिंग विशेषताओं और उनके मानों को "श्वेतसूची" करना है ताकि वार्निश यूआरएल के बीच कैश को अलग न करे।चुनिंदा क्वेरीस्ट्रिंग विशेषता/मान जोड़े को स्ट्रिपिंग करना ताकि वार्निश उनके द्वारा कैश को अलग नहीं करेगा
उदाहरण:
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
ऊपर के उदाहरण मैं "utm_code" लेकिन "प्रकार" तो बाद पहली यूआरएल मारा जाता है मैं वार्निश दूसरा यूआरएल है कि कैश की गई सामग्री की सेवा करना चाहते हैं श्वेतसूची में चाहते हैं।
हालांकि, तीसरे यूआरएल के मामले में, विशेषता "प्रकार" मान अलग है ताकि वार्निश कैश मिस होना चाहिए।
मैंने नीचे 2 विधियों की कोशिश की है (एक ड्रोपल सहायता आलेख पर मिला है जिसे मैं अभी नहीं ढूंढ सकता) जो काम नहीं कर रहा था। हो सकता है क्योंकि मेरे पास regex गलत है।
# 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, "[\?|&]+$", "");
मैं माफी चाहता हूँ, मैं समझाने की है कि मेरे कोड utm_campaign, utm_content, आदि utm_code के लिए काम करने के लिए गया था सिर्फ एक "सामान्य उदाहरण" मैं बना नहीं मालूम था मतलब है। मुझे अंततः कुछ ऐसा लगता है जो काम करता है और इसे मूल संपादन में जोड़ देगा ... हालांकि आपके इनपुट के लिए धन्यवाद! – runamok
दरअसल आप लगभग यह था। लेकिन जब आप लालची और अंत मैचों के बाद से utm_ का पीछा करते हैं तो यह विफल रहता है क्योंकि अगला मैच मेल नहीं खाता है। की आवश्यकता है: ([\? | &]) Utm _ (\ w +) = [^ & \ s] * – dalore