首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阻止yandex

如何阻止yandex
EN

Stack Overflow用户
提问于 2022-07-26 14:59:23
回答 2查看 225关注 0票数 1

我想阻止yandex离开我的网站。我尝试过在其他线程中发布的解决方案,但是它们不起作用,所以我想知道我是否做错了什么?

用户代理字符串是:

代码语言:javascript
复制
    Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots

我试过以下几种(一次一次)。RewriteEngine开着

代码语言:javascript
复制
    SetEnvIfNoCase User-Agent "^yandex.com$" bad_bot_block
    Order Allow,Deny
    Deny from env=bad_bot_block
    Allow from ALL

    SetEnvIfNoCase User-Agent "^yandex.com$" bad_bot_block
    <RequireAll>
    Require all granted
    Require not env bad_bot_block       
    </RequireAll>

有谁能看到上述其中之一不起作用的原因或有什么其他建议吗?

EN

回答 2

Stack Overflow用户

发布于 2022-07-28 18:55:20

如果其他人有此问题,以下几点对我来说是有效的:

代码语言:javascript
复制
    RewriteCond %{HTTP_USER_AGENT} ^.*(yandex).*$ [NC]
    RewriteRule .* - [F,L]
票数 1
EN

Stack Overflow用户

发布于 2022-07-26 23:22:49

SetEnvIfNoCase用户-代理"^yandex.com$“bad_bot_block

使用regex中的开始和结束字符串锚点,您将基本检查用户代理字符串是否完全等于"yandex.com“(除了.是任何字符),这显然与指定的用户代理字符串不匹配。

您需要检查User-Agent头是否包含"YandexBot“(或"yandex.com")。您也可以在这里使用区分大小写的匹配,因为真正的Yandex机器人不会改变情况。

例如,尝试以下方法:

代码语言:javascript
复制
SetEnvIf User-Agent "YandexBot" bad_bot_block

考虑使用BrowserMatch指令,这是SetEnvIf User-Agent的一个快捷方式。

如果您使用Apache2.4,那么您应该使用两个代码块的Require (第二个)变体。OrderDenyAllow指令是Apache2.2,以前在Apache2.4上不推荐。

但是,首先考虑使用robots.txt来阻止爬行。Yandex supposedly supports robots.txt

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73125671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档