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哦,我想我找到了。。。谷歌机器人索引不是作为一个参考,而是作为一个不同的条件?请你再详细说明一下,好吗?我会接受并投票表决。