是否可以在 htaccess 中限制每个“用户代理”的连接数?

是否可以在 htaccess 中限制每个“用户代理”的连接数?

假设我的目标是限制通过“Mozilla”(firefox)用户代理同时访问我的网站的用户数量,在 apache 2.2 中可以做到吗?

我正在考虑使用类似以下的方法:

RewriteCond %{HTTP_USER_AGENT} "mozilla" [NC]

MaxClients            0

但是我不知道(如果可能的话)如何让这两条规则协同工作?

答案1

不。将 MaxClients 视为服务器端高级变量,将 Rewrites 视为虚拟主机上的某个变量。它们不会以您希望的方式混合。

您需要寻找一个可以完成您所需任务的第三方模块 - 类似于http://opensource.adnovum.ch/mod_qos/可能符合你的需要?

然而,这可能无法解决您尝试解决的任何问题。例如,Mozilla 可能由许多不同的应用程序发送,这些应用程序并非专门为 Firefox 发送。以下是一些移动设备的示例。

“Mozilla/5.0(Windows NT 6.3;WOW64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/45.0.2454.101 Safari/537.36”

“Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; Vodafone Smart Tab 4 Build/JDQ39) AppleWebKit/534.30 (KHTML,如 Gecko) Version/4.2 Mobile Safari/534.30”

他们使用的是 Chrome、Safari、苹果浏览器还是 Firefox?我不知道。如果你专门寻找 Firefox 浏览器,你需要更具体一点(请参阅http://www.useragentstring.com/pages/Firefox/以获取这些字符串的列表)。

相关内容