Ist es möglich, Chrome und andere Browser daran zu hindern, meine Site vorab abzurufen / zu rendern?

14

Ich weiß, dass Sie Chrome anleiten können , Links vorab abzurufen, von denen Sie glauben, dass Nutzer wahrscheinlich auf Ihre Website klicken , aber können Sie auch das Gegenteil tun? Können Sie Chrome (oder wirklich jedem Browser) anweisen, Ihre Website nicht vorab abzurufen und vorab zu rendern?

Gibt es ein Tag oder eine andere Möglichkeit, mit der ich Browsern mitteilen kann, dass das Abrufen von Links von der aktuell angezeigten Seite nicht erfolgen soll?

Ian C.
quelle
1
Neugierig, warum willst du das?
Martijn
@Martijn Ein Fall, den ich sehen kann, ist, wenn Ihre Website zeitabhängigen oder hochdynamischen Inhalt enthält, bei dem eine Verzögerung zwischen dem Rendern der Seite und dem Zeitpunkt, an dem der Benutzer dies tatsächlich sieht , eine Rolle spielt.
Anders Fjeldstad

Antworten:

12

Chrome und Safari senden einen X-Purpose: previewHTTP-Header, wenn Webinhalte vorab abgerufen / gerendert werden. [ Quelle ]

Firefox sendet einen ähnlichen Header namens X-moz: prefetch. [ Quelle ]

Um das Vorabrufen zu blockieren, können Sie eine 404-Antwort zurückgeben, wenn solche Header erkannt werden, wie von Peter Freitag in diesem Blogbeitrag vorgeschlagen . Er empfiehlt, diese Zeilen hinzuzufügen .htaccess, um das Firefox-Prefetching zu blockieren:

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

Sie können dies erweitern, um das Prefetching von Firefox, Safari und Chrome wie folgt zu blockieren (ungetestet, sollte aber funktionieren):

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

Die obige Antwort hat bei mir nicht funktioniert. Was jedoch funktionierte, war Folgendes:

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]

Von: askapache.com

Das [F] -Flag gibt einen 403 Forbidden-Statuscode an den Browser zurück, während das [L] angibt, dass die Regel die letzte zu verarbeitende Regel sein sollte.

Außerdem scheint Chrome keine Links mehr vorab abzurufen (zumindest für die vorherigen / nächsten Meta-Tags).

Gabe Hiemstra
quelle