Можно ли остановить Chrome и другие браузеры от предварительной загрузки / рендеринга моего сайта?

14

Я знаю, что вы можете направлять Chrome к предварительной загрузке ссылок, которые, по вашему мнению, пользователи могут нажимать на ваш сайт , но можете ли вы сделать обратное? Можете ли вы сказать Chrome (или вообще любому браузеру), чтобы он не загружал и не обновлял ваш сайт?

Есть ли какой-либо тег или другой способ сообщить браузерам, что предварительную выборку ссылок с просматриваемой страницы не следует делать?

Ян С.
источник
1
Любопытно, зачем тебе это?
Мартейн
@Martijn Один случай, который я вижу, это когда ваш сайт содержит зависящий от времени или очень динамичный контент, где задержка между отображением страницы и когда пользователь на самом деле видит это имеет значение.
Андерс Фьелдстад

Ответы:

12

Chrome и Safari отправляют X-Purpose: previewзаголовок HTTP при предварительной загрузке / рендеринге веб-контента. [ Источник ]

Firefox отправляет аналогичный заголовок с именем X-moz: prefetch. [ Источник ]

Чтобы заблокировать предварительную выборку, вы можете вернуть ответ 404 при обнаружении таких заголовков, как это было предложено Питером Фрейтагом в этом сообщении в блоге . Он рекомендует добавить эти строки, .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, похоже, больше не выполняет предварительную выборку ссылок (по крайней мере, для мета-тегов prev / next).

Гейб Химстра
источник