เป็นไปได้หรือไม่ที่จะหยุด Chrome และเบราว์เซอร์อื่น ๆ จากการดึงข้อมูล / แสดงผลไซต์ของฉันล่วงหน้า


14

ฉันรู้ว่าคุณสามารถแนะนำ Chrome ในการดึงข้อมูลลิงก์ที่คุณคิดว่าผู้ใช้มีแนวโน้มที่จะคลิกบนไซต์ของคุณแต่คุณสามารถทำผกผันได้หรือไม่ คุณสามารถบอก Chrome (หรือเบราว์เซอร์ใด ๆ ) ไม่ให้ดึงข้อมูลล่วงหน้าและแสดงผลไซต์ของคุณล่วงหน้าได้หรือไม่

มีแท็กหรือวิธีอื่นที่ฉันสามารถบอกเบราว์เซอร์ว่าไม่ควรทำลิงก์ล่วงหน้าจากหน้าเว็บที่ดูอยู่ในปัจจุบัน?


1
อยากรู้อยากเห็นทำไมคุณต้องการสิ่งนี้
Martijn

@Martijn กรณีหนึ่งที่ฉันเห็นคือเมื่อไซต์ของคุณมีเนื้อหาที่ขึ้นอยู่กับเวลาหรือแบบไดนามิกสูงที่มีความล่าช้าระหว่างการแสดงผลหน้าและเมื่อผู้ใช้เห็นจริงมันเป็นเรื่องสำคัญ
Anders Fjeldstad

คำตอบ:


12

Chrome และ Safari ส่งX-Purpose: previewส่วนหัว HTTP เมื่อดึงข้อมูล / แสดงผลเนื้อหาเว็บล่วงหน้า [ ที่มา ]

Firefox X-moz: prefetchส่งส่วนหัวคล้ายกันเรียกว่า [ ที่มา ]

หากต้องการบล็อกการดึงข้อมูลล่วงหน้าคุณสามารถส่งคืนการตอบสนอง 404 เมื่อตรวจพบส่วนหัวดังกล่าวตามที่ Peter Freitag แนะนำในโพสต์บล็อกนี้ เขาแนะนำให้เพิ่มบรรทัดเหล่านี้.htaccessเพื่อป้องกันการดึงข้อมูลล่วงหน้าของ Firefox:

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

คุณสามารถขยายสิ่งนี้เพื่อบล็อกการดึงข้อมูลล่วงหน้า Firefox, Safari และ Chrome เช่นนี้ (ยังไม่ทดลอง แต่ควรใช้งานได้):

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] ระบุว่ากฎควรเป็นกฎสุดท้ายที่จะดำเนินการ

และดูเหมือนว่า Chrome จะไม่ดึงลิงก์ล่วงหน้าอีกต่อไป (อย่างน้อยสำหรับเมตาแท็กก่อนหน้า / ถัดไป)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.