Heim  >  Fragen und Antworten  >  Hauptteil

Wie kann verhindert werden, dass mehrere Domainnamen in einer Nginx-Umgebung auf meine Website zugreifen?

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.

phpcn_u1582phpcn_u15822735 Tage vor470

Antworte allen(3)Ich werde antworten

  • 我想大声告诉你

    我想大声告诉你2017-05-16 17:27:31

    尝试了以上的方法,都没有成功。
    请问,以上的规则是放在那个段里呢?

    在一些网站上找到了,这样的一个规则:

    <IfModule mod_rewrite.c>
    

    RewriteEngine On

    Block domain

    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段即可,经测试两天暂未发现通过某域名跳转进来。

    Antwort
    0
  • 世界只因有你

    世界只因有你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;
        }
    }

    Antwort
    0
  • 習慣沉默

    習慣沉默2017-05-16 17:27:31

    在server里加上以下代码:

        listen       80 default;
        server_name  _;
        return 500;
    

    Antwort
    0
  • StornierenAntwort