阻止用户代理
Blocking user agent
谁能告诉我如何使用 apache2 mod 重写或任何其他方法来阻止以下用户代理,
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/A1E1
要使用 mod_rewrite 阻止 Apache vHost 中的特定用户代理,您可以这样做:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/A1E1"
RewriteRule ^ - [F]
这为来自该确切用户代理的任何请求提供 403 禁止。
正则表达式(第一个参数)^
(字符串开头断言)对每个请求都是成功的。虽然 substitution 字符串(第二个参数)中的单个 -
(连字符)表示没有替换(我们只是阻止请求,而不是重写 URL)。
通过在 CondPattern(RewriteCond
指令的第二个参数)前加上 =
使其成为字典字符串比较(即完全匹配) ,不是正则表达式。由于我们匹配的字符串包含空格,因此需要周围的双引号。
F
标志等同于 R=403
。 L
标志不是必需的,因为在返回非 3xx(或 2xx)状态时它是 隐含的 。
更新:
can we add a wildcard entry like the last part of Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/A1E1
keeps changing the /A1E1
是的,但您需要将上面的 CondPattern 更改为正则表达式。
例如:
RewriteCond %{HTTP_USER_AGENT} "^Mozilla/5\.0 (Windows NT 6\.1; WOW64; rv:63\.0) Gecko/20100101 Firefox/"
以上匹配 启动 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/
的任何用户代理,从而留下用户代理变量的结尾。
请注意,由于这是一个正则表达式,因此任何特殊的正则表达式元字符都需要反斜杠转义。在此示例中,这似乎只是点 (.
)。仍然可以使用周围的双引号来避免必须转义空格。
谁能告诉我如何使用 apache2 mod 重写或任何其他方法来阻止以下用户代理,
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/A1E1
要使用 mod_rewrite 阻止 Apache vHost 中的特定用户代理,您可以这样做:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/A1E1"
RewriteRule ^ - [F]
这为来自该确切用户代理的任何请求提供 403 禁止。
正则表达式(第一个参数)^
(字符串开头断言)对每个请求都是成功的。虽然 substitution 字符串(第二个参数)中的单个 -
(连字符)表示没有替换(我们只是阻止请求,而不是重写 URL)。
通过在 CondPattern(RewriteCond
指令的第二个参数)前加上 =
使其成为字典字符串比较(即完全匹配) ,不是正则表达式。由于我们匹配的字符串包含空格,因此需要周围的双引号。
F
标志等同于 R=403
。 L
标志不是必需的,因为在返回非 3xx(或 2xx)状态时它是 隐含的 。
更新:
can we add a wildcard entry like the last part of
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/A1E1
keeps changing the/A1E1
是的,但您需要将上面的 CondPattern 更改为正则表达式。
例如:
RewriteCond %{HTTP_USER_AGENT} "^Mozilla/5\.0 (Windows NT 6\.1; WOW64; rv:63\.0) Gecko/20100101 Firefox/"
以上匹配 启动 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/
的任何用户代理,从而留下用户代理变量的结尾。
请注意,由于这是一个正则表达式,因此任何特殊的正则表达式元字符都需要反斜杠转义。在此示例中,这似乎只是点 (.
)。仍然可以使用周围的双引号来避免必须转义空格。