Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 如何使用htaccess规则阻止除google索引外的内容热链接_Apache_.htaccess_Mod Rewrite_Search Engine Bots - Fatal编程技术网

Apache 如何使用htaccess规则阻止除google索引外的内容热链接

Apache 如何使用htaccess规则阻止除google索引外的内容热链接,apache,.htaccess,mod-rewrite,search-engine-bots,Apache,.htaccess,Mod Rewrite,Search Engine Bots,我已经准备了一个.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] RewriteEngine On RewriteCond

我已经准备了一个
.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]
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]
这条规则按预期运行。如果链接来自外部文件,则请求将重定向到“我的搜索”页面,平台将在其中搜索该(及类似)文件

所以,当我在谷歌搜索时,谷歌显示的结果(已经被索引)被重定向到我的搜索页面(这很好)。现在,我关心的是下一次谷歌将索引我的网站。因此,我添加了一条新规则如下:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteRule ([^/]+)\.(pdf)$ http://www.example.com/search_gcse/?q=$1 [NC,R,L]
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]
然而,我不确定这个规则是否有效,以及如何检查它。如果我尝试从谷歌搜索结果中访问一个文件,我仍然会被重定向到我的搜索页面,所以这不会影响谷歌搜索结果


这条规则是否允许谷歌为我的新pdf文件编制索引,但禁止从谷歌搜索结果页面直接访问?如果没有,正确的方法是什么?

而您的htaccess规则将不允许热链接;它不适合搜索索引器和其他机器人。搜索引擎仍然能够为您的文件编制索引

为了禁止搜索引擎索引你的文件;您需要传递
X-Robots-Tag
标题。提供一个小文档,介绍如何防止robot对其已爬网的页面进行索引/缓存/存档

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

标题集X-Robots-Tag“noindex,nofollow”

您的第一个代码块将允许谷歌机器人为文件编制索引,但当用户试图从谷歌搜索结果中访问PDF时,将被重定向到搜索页面。@hjpotter92哦,我想我找到了。。。谷歌机器人索引不是作为一个参考,而是作为一个不同的条件?请你再详细说明一下,好吗?我会接受并投票表决。