2

我准备了一个.htaccess文件,并将其放在一个包含 pdf 文件的目录中,以防止盗链,但我的站点除外,如下所示:

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

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

所以,当我在谷歌搜索时,谷歌显示的结果(已经被索引)被重定向到我的搜索页面(很好)。现在,我担心下次 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=$1 [NC,R,L]

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

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

4

1 回答 1

1

虽然您的 htaccess 规则将禁止盗链;它不适用于搜索索引器和其他机器人。搜索引擎仍然可以索引您的文件。

为了禁止搜索引擎索引您的文件;你需要传递X-Robots-Tag标题。谷歌提供了一个关于如何防止机器人索引/缓存/归档它已经抓取的页面的小文档。

<Files ~ "\.pdf$">
  Header set X-Robots-Tag "noindex, nofollow"
</Files>
于 2015-09-22T10:24:21.407 回答