需要使用禁止的错误来阻止.htaccess
文件中的用户代理。但是,这种效果只能在Google,Bing以及根本没有用户代理的地方使用。这不起作用:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (Google|Bing||onlytogivespace) [NC]
RewriteRule (.*) - [F,L]
我写了这个,但是对于空用户代理,它似乎不起作用。
需要帮助...
答案 0 :(得分:1)
RewriteCond %{HTTP_USER_AGENT} (Google|Bing||onlytogivespace) [NC] RewriteRule (.*) - [F,L]
这将阻止每个用户代理。因为RewriteCond
指令中的正则表达式正在检查用户代理是否包含“”(什么都没有)-并非等于空字符串。此正则表达式将成功匹配每个字符串/用户代理,因此将阻止所有内容。
要匹配一个空的用户代理,您需要将正则表达式更改为:(Google|Bing|^$|onlytogivespace)
。请注意^$
以匹配一个空字符串。
其他说明:
NC
指令上的RewriteCond
标志。您知道Googlebot始终为Googlebot
,bingbot始终为bingbot
。L
时,不需要RewriteRule
指令上的F
标志。在这种情况下暗指L
。(.*)
是不必要的,因为您不需要显式匹配URL路径,也不需要反向引用。onlytogivespace
的用途是什么?因此,可以将其重写:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (Googlebot|bingbot|^$)
RewriteRule ^ - [F]