क्या Chrome और अन्य ब्राउज़रों को मेरी साइट पर प्री-फ़ेचिंग / रेंडर करने से रोकना संभव है?


14

मुझे पता है कि आप लिंक को प्रीफ़ैच करने के लिए क्रोम का मार्गदर्शन कर सकते हैं, आपको लगता है कि उपयोगकर्ता आपकी साइट पर क्लिक करने की संभावना रखते हैं , लेकिन क्या आप उलटा भी कर सकते हैं? क्या आप Chrome को (या वास्तव में किसी भी ब्राउज़र को) अपनी साइट को प्रीफ़ैच और प्रीरेन्डर करने के लिए नहीं कह सकते हैं ?

क्या कोई टैग या अन्य तरीका है जो मैं ब्राउज़रों को बता सकता हूं कि वर्तमान में देखे गए पेज से प्री-लिंकिंग लिंक नहीं होना चाहिए?


1
जिज्ञासु, तुम ऐसा क्यों चाहोगे?
मार्टि

@Martijn एक मामला जो मैं देख सकता हूं वह यह है कि जब आपकी साइट में समय-निर्भर या अत्यधिक गतिशील सामग्री होती है, जहां पेज रेंडरिंग के बीच देरी होती है और जब उपयोगकर्ता वास्तव में इस मामले को देखता है।
एंडर्स फजल्डस्टैड

जवाबों:


12

Chrome और Safari X-Purpose: previewजब वेब सामग्री को प्री-लाकर / रेंडर कर रहे हैं तो HTTP हेडर भेजते हैं । [ स्रोत ]

फ़ायरफ़ॉक्स एक समान हेडर भेजता है जिसे कहा जाता है X-moz: prefetch। [ स्रोत ]

प्री-फ़ेचिंग को ब्लॉक करने के लिए, आप 404 प्रतिक्रिया दे सकते हैं जब इस तरह के हेडर का पता लगाया जाता है, जैसा कि इस ब्लॉग पोस्ट में पीटर फ्रिटैग ने सुझाया है । वह .htaccessफ़ायरफ़ॉक्स प्रीफ़ैचिंग को ब्लॉक करने के लिए इन पंक्तियों को जोड़ने की सिफारिश करता है :

RewriteEngine On
SetEnvIf X-moz prefetch HAS_X-moz 
RewriteCond %{ENV:HAS_X-moz} prefetch 
RewriteRule .* /prefetch-attempt [L]

आप इसे फ़ायरफ़ॉक्स, सफारी और क्रोम प्रीफ़ैचिंग को इस तरह से ब्लॉक करने के लिए बढ़ा सकते हैं (अनटाइटेड, लेकिन काम करना चाहिए):

RewriteEngine On
SetEnvIf X-moz prefetch HAS_preview 
SetEnvIf X-Purpose preview HAS_preview
RewriteCond %{ENV:HAS_preview} .
RewriteRule .* /prefetch-attempt [L]


1

उपरोक्त उत्तर मेरे काम नहीं आया। हालांकि, इसने क्या काम किया:

RewriteEngine On
SetEnvIfNoCase X-Forwarded-For .+ proxy=yes
SetEnvIfNoCase X-moz prefetch no_access=yes

# block pre-fetch requests with X-moz headers
RewriteCond %{ENV:no_access} yes
RewriteRule .* - [F,L]

प्रेषक: askapache.com

[F] ध्वज ब्राउज़र में 403 निषिद्ध स्थिति कोड लौटाता है, जबकि [L] इंगित करता है कि नियम को संसाधित करने का अंतिम नियम होना चाहिए।

इसके अलावा, क्रोम किसी भी लंबे समय तक लिंक को प्रीफेच नहीं करता है (कम से कम, प्रचलित / अगले मेटा टैग के लिए)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.