Mod 重写正则表达式 htaccess

Mod 重写正则表达式 htaccess

我一直在使用它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 黑名单。这是一个很好的资源!

相关内容