最近,我收到很多来自我的网站的垃圾邮件引用者使用不同的域名,他们都是.ru域名。 我在我的服务器上使用Nginx。
目前我使用下面的代码来阻止stream行的垃圾邮件引用,如我们Semalt,但我不能插入每个.ru域名,他们总是拿出新的。
if ($http_referer ~ "7makemoneyonline\.com|semalt\.com|Get-Free-Traffic-Now\.com) { return 403; }
我的问题是:如何阻止任何.ru域名引用的所有请求,而不会干扰其名称中包含ru字母的其他域名,例如: d ru gs.com ?
正则expression式匹配域名应通过使用$标记锚定到行的末尾。 例如,要匹配www.example.org , example.com和.net您可以使用:
if ($http_referer ~* (www\.example\.org|example\.com|\.net)$ ) { ... }
这是一些候选人,用|分隔 并括在括号内。 最后的$将它锚定到行尾。