如何使用正则表达式匹配.htaccess中的主机名



我正试图在我的WordPress网站上使用.htaccess阻止一个机器人。

主机名为:ec2-D1-D2-D3-D4.us-east-2.compute.amazonaws.com

其中,D1、D2、D3、D4是1-3位的序列,即[0-9]+将匹配。

在一些情况下只有D1、D2&D3存在。

我正在尝试:

RewriteCond %{HTTP_REFERER} ^ec2-[0-9]+-[0-9]+-[0-9]+.us-east-2.compute.amazonaws.com$ [OR]
RewriteCond %{HTTP_REFERER} ^ec2-[0-9]+-[0-9]+-[0-9]+-[0-9]+.us-east-2.compute.amazonaws.com$ 
RewriteRule ^.*$ - [F,L]

它似乎不起作用。我错过了什么?

你能试试下面的吗,公平警告还没有测试它,还修复了这里的正则表达式,并且HTTP_REFERER不直接从hotname开始,所以在这里也删除了主机名之前的^部分(所有值都是有问题的样本/测试值(。

RewriteEngine ON
RewriteCond %{HTTP_REFERER} ec2-([0-9]+-){1,}[0-9]+.us-east-2.compute.amazonaws.com [NC]
RewriteRule ^ - [F,L]