您的位置:首頁技術文章
文章詳情頁

nginx環境下,如何禁止多個域名訪問自己的網站?

瀏覽:136日期:2024-06-18 15:10:02

問題描述

通過流量來源分析,發現一些通過某些域名進入本站并惡意點擊廣告的問題,如何通過nginx規則來屏蔽這些域名呢?

if ( $host = 'www.xxx.net' or $host = 'ads.xxx.com' ) { rewrite ^/(.*)$ http://www.sdfdsfgffghgf3sdfsdsdfsdf.com/$1 permanent;}

以上規則無效,請高手幫忙寫一個規則。

問題解答

回答1:

嘗試了以上的方法,都沒有成功。nginx環境下,如何禁止多個域名訪問自己的網站?請問,以上的規則是放在那個段里呢?

在一些網站上找到了,這樣的一個規則:

<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段即可,經測試兩天暫未發現通過某域名跳轉進來。

回答2:

你這個只是 server_name跳轉,按你說的,應該是來路判斷,所以要判斷refer

valid_referers none blocked www.mydomain.com *.mydomain.com; if ($invalid_referer) { return 403; }

上面是白名單制度,也可以采用黑名單規則

location / { if ($http_referer ~* ^xxxxx$) { rewrite 493; }}回答3:

在server里加上以下代碼:

listen 80 default; server_name _; return 500;

国产综合久久一区二区三区