答案1
您链接到的答案包含以下代码:
RewriteCond %{HTTP_USER_AGENT} ^.*Chrome/10.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Firefox/4.*$
RewriteRule .* - [L]
RewriteRule .* http://example.com/browsererror.html [R,L]
这允许来自与模式^.*Chrome/10.*$
或匹配的用户代理的请求。当这些请求到达你的网站时,^.*Firefox/4.*$
它基本上不做任何事 ( ),否则重定向。- [L]
要执行完全相反的操作并通过重定向来阻止来自这些用户代理的请求,则只需删除第二个RewriteRule
并在第一个中重定向:
RewriteCond %{HTTP_USER_AGENT} ^.*Chrome/10.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Firefox/4.*$
RewriteRule .* http://example.com/browsererror.html [R,L]
但是,这不一定是阻止特定用户代理请求的“最佳方法”。不要使用 mod_rewrite,而应考虑使用 mod_setenvif 和适当的 mod_authz... 模块(取决于您使用的是 Apache 2.2 还是 2.4)。并提供 403 Forbidden 而不是重定向。例如: