我一直在使用它mod_rewrite
来阻止一些用户代理,但是现在,我收到了 500 错误和错误日志:
/var/www/htdocs/.htaccess: RewriteCond: cannot compile regular expression
我认为我的正则表达式没有问题,问题是RewriteCond
太长了。
例子:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_USER_AGENT} (UserAgent1|UserAgent2|UserAgent3)[NC]
RewriteRule .* - [G]
</IfModule>
因此我尝试将新的用户代理添加到新行,但是也不起作用。
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_USER_AGENT} (UserAgent1|UserAgent2|UserAgent3)[NC]
RewriteRule .* - [G]
RewriteCond %{HTTP_USER_AGENT} (UserAgent4|UserAgent5|UserAgent6)[NC]
RewriteRule .* - [G]
</IfModule>
答案1
我使用这些规则。保持简单...
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} almaden [OR]
RewriteCond %{HTTP_USER_AGENT} ^Anarchie [OR]
RewriteCond %{HTTP_USER_AGENT} ^ASPSeek [OR]
...
RewriteRule ^.* - [G]
我RewriteRule ^.* - [F,L]
使用终极 htaccess 黑名单。这是一个很好的资源!