如何阻止来自特定域名 TLD 的引荐来源?

如何阻止来自特定域名 TLD 的引荐来源?

最近,我的网站收到许多来自使用不同域名的垃圾邮件引荐来源的点击,它们都是.ru域名。我在服务器上使用 Nginx。

目前,我正在使用以下代码来阻止流行的垃圾邮件引荐来源,例如 Semalt,但我无法插入每个.ru域名,因为他们总是会提出新的域名。

if ($http_referer ~ "7makemoneyonline\.com|semalt\.com|Get-Free-Traffic-Now\.com) { 
       return 403;
}

我的问题是:如何阻止来自任何.ru域名的所有请求,而不干扰ru名称中包含字母的其他域名,例如:d格斯网

答案1

匹配域名的正则表达式应该使用 token 锚定到行尾$。例如,要匹配www.example.orgexample.com.net可以使用:

if ($http_referer ~* (www\.example\.org|example\.com|\.net)$ ) { ... }

这是多个候选字符,用|括号分隔并括起来。最后一个$字符将其固定在行尾。

相关内容