为了防止引用垃圾邮件,我的 nginx.conf 包含这样的部分:
if ($http_referer ~* spamdomain1\.com) {
return 444;
}
if ($http_referer ~* spamdomain2\.com) {
return 444;
}
if ($http_referer ~* spamdomain3\.com) {
return 444;
}
Run Code Online (Sandbox Code Playgroud)
如果用户设置了这些引用之一,这些规则告诉 nginx 只是关闭连接。有没有更优雅的方法来做到这一点?我可以定义这些域的列表,然后说“如果引用者在此列表中,则返回 444”吗?
Mic*_*ton 33
我会尝试一个map:
map $http_referer $bad_referer {
default 0;
"~spamdomain1.com" 1;
"~spamdomain2.com" 1;
"~spamdomain3.com" 1;
}
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它:
if ($bad_referer) {
return 444;
}
Run Code Online (Sandbox Code Playgroud)
Hrv*_*jar 14
您可以使用逻辑OR来制作一个多匹配语句,例如
if ($http_referer ~ "spamdomain1\.com|spamdomain2\.com|spamdomain3\.com") {
return 444;
}
Run Code Online (Sandbox Code Playgroud)
编辑每个评论;break;从块中移除
| 归档时间: |
|
| 查看次数: |
16734 次 |
| 最近记录: |