.htaccess RedirectMatch与部分不匹配?

时间:2012-01-15 12:31:47

标签: .htaccess

我正在管理一些WordPress安装,我厌倦了错误日志充满404错误,这些错误是由于糟糕机器人不断检查已知黑客/可攻击主题目录中的style.css文件,例如:

www.example.com/wp-content/themes/thestation/style.css

www.example.com/wp-content/themes/wootube/style.css

www.example.com/wp-content/themes/vibrantcms/style.css

糟糕的机器人正在搜索许多不同的主题,因此,不是为每个单独编写规则,而是使用与每个style.css实例匹配的重定向匹配更有意义,只要它不是在我正在使用的实际主题的目录中。

例如,如果我在目录/ twentyten /中使用主题,那么RedirectMatch应该捕获每次尝试访问除/ twentyten /目录之外的任何目录中的任何style.css文件。

2 个答案:

答案 0 :(得分:4)

AFAIK,你无法使用RedirectMatch执行此操作,但是如果要启用mod_rewrite,那么您是否尝试执行以下操作:

<Directory .../wp-content/themes/>
    RewriteCond $1 !=twentyten
    RewriteRule ^(.*?)/style.css  badBotProbe/style.css [L]
    ...
</Directory>

(或其他一些标志,如[R = 403])。问题是你做的任何事情,日志记录了具有这些随机样式的请求参数,所以你仍然需要做一个智能过滤器。

您可以通过此规则从错误日志中删除这些探针,以将查询重定向到探针:

    RewriteRule ^(.*?)/style.css  http://{%REMOTE_ADDR}/tryyourself.css [R=301]

但这是否真的只是为了删除404条目?

PS。以上假设您可以访问根配置。带有调整的相同解决方案适用于相应的.htaccess

答案 1 :(得分:0)

AFAIK在Apache中无法做到这一点。

您可以设置自己的404页面吗?

您可以将重定向放在那里。

相关问题