在 .htaccess 中,我尝试通过远程主机名限制访问,例如来自 googlebot.com 的请求。我发现以下方法有效:
Order Deny,Allow
Deny from All
Allow from googlebot.com
SetEnvIf
但是,当使用以下方法时,这种方法不起作用
SetEnvIf Remote_Host googlebot.com friendly_robot
Order Deny,Allow
Deny from All
Allow from env=friendly_robot
有人能向我解释为什么第一个实例有效而第二个实例无效吗?我花了几个小时在线阅读,但不明白为什么它不起作用SetEnvIf
。
答案1
您是否尝试过在 SetEnvIf 正则表达式中转义点?例如
SetEnvIfNoCase Remote_Host googlebot\.com$ friendly_robot