如何阻止内容热链接,除了 google 使用 htaccess 规则建立索引

How to block content hotlinking except from google indexing with htaccess rules

我已经准备了一个 .htaccess 文件并将其放在一个包含 pdf 文件的目录中以防止热 linking 除了我的站点如下:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteRule ([^/]+)\.(pdf)$ http://www.example.com/search_gcse/?q= [NC,R,L]

此规则按预期工作。如果 link 来自外部文件,请求将重定向到我的搜索页面,平台会在其中搜索该(和类似)文件。

因此,当我在 Google 中搜索时,google 显示的结果(已被编入索引)被重定向到我的搜索页面(这很好)。现在,我担心下一次 Google 会为我的网站编制索引。所以,我添加了一个新规则如下:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteCond %{HTTP_USER_AGENT} !(googlebot) [NC]
RewriteRule ([^/]+)\.(pdf)$ http://www.example.com/search_gcse/?q= [NC,R,L]

但是,我不确定该规则是否有效,以及检查它的方法是什么。如果我尝试从 google 搜索结果访问文件,我仍会被重定向到我的搜索页面,因此它不会影响 google 搜索结果。

此规则是否允许 google 为我的新 pdf 文件编制索引,但阻止从 google 搜索结果页面直接访问?如果不是,实现此目标的正确方法是什么?

虽然您的 htaccess 规则将禁止热链接;它不适用于搜索索引器和其他机器人。搜索引擎仍然能够为您的文件编制索引。

为了禁止搜索引擎索引您的文件;你需要通过 X-Robots-Tag header。 Google 提供了一份关于如何防止漫游器 indexing/caching/archiving 它已抓取的页面的小文档。

<Files ~ "\.pdf$">
  Header set X-Robots-Tag "noindex, nofollow"
</Files>