在过去,这是非常有效的:
#domain1.com
location /files/ {
valid_referers none blocked domain1.com domain2.com domain3.com;
if ($invalid_referer) {
return 403;
}
if (!-e $request_filename) {
rewrite ^(.*)$ https://domain2.com/files/$1 redirect;
}
}
但在升级 nginx 后就不起作用了
我发现这个,似乎不适用于新版本的 nginx: https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
我还发现了这个解决问题的办法:https://agentzh.blogspot.com/2011/03/how-nginx-location-if-works.html
但我不知道如何让它发挥作用。
这是我的.htaccess 文件:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !domain1\.com [NC]
RewriteCond %{HTTP_REFERER} !domain2\.com [NC]
RewriteCond %{HTTP_REFERER} !domain3\.com [NC]
RewriteRule \.rar$ - [F,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ http://domain2.com/file/$1 [L,R,NC]