Heim > Fragen und Antworten > Hauptteil
Durch die Analyse der Verkehrsquellen haben wir einige Probleme festgestellt, bei denen Personen diese Website über bestimmte Domänennamen betreten und böswillig auf Anzeigen klicken. Wie können diese Domänennamen mithilfe der Nginx-Regeln blockiert werden?
if ( $host = "www.xxx.net" or $host = "ads.xxx.com" ) {
rewrite ^/(.*)$ http://www.sdfdsfgffghgf3sdfsdsdfsdf.com/ permanent;
}
Die oben genannten Regeln sind ungültig. Bitte helfen Sie einem Experten, eine Regel zu schreiben.
我想大声告诉你2017-05-16 17:27:31
尝试了以上的方法,都没有成功。
请问,以上的规则是放在那个段里呢?
在一些网站上找到了,这样的一个规则:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} ads.acesse.com [NC]
RewriteRule ^(.*)$ -[F]
如果是转换成nginx规则的话是否正确:
if ($http_referer ~* "ads.acesse.com"){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
rewrite ^/(.*)$ /-[F];
}
请高手帮忙判断看看。
需要的效果:封禁通过某域名跳转到目标站,例如从xxx.com跳转到aaa.com进行恶意刷流量和点击广告:
环境:nginx
规则:
if ($http_referer ~* ads\.xxx\.com){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
rewrite ^/(.*)$ /-[F];
}
把以上规则放在server段即可,经测试两天暂未发现通过某域名跳转进来。
世界只因有你2017-05-16 17:27:31
你这个只是 server_name跳转,
按你说的,应该是来路判断,
所以要判断refer
valid_referers none blocked www.mydomain.com *.mydomain.com;
if ($invalid_referer) {
return 403;
}
上面是白名单制度,也可以采用黑名单规则
location / {
if ($http_referer ~* ^xxxxx$) {
rewrite 493;
}
}