在安装主机大师的前提下,可在需要防盗链的网站根目录下创建文件web.config,添加如下内容:(网址请更换为您自己的网址)
如网站根目录下已经存在有web.config文件,只需要把<rule></rule>这一段复制至相应字段中。
同时可以在网站根目录创建一个block.html文件,指定出现被盗链时返回的默认页面,也可以指定404页面。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="blocklink"> <match url="^.*\.(jpg|jpeg|gif|png|js|css)$" ignoreCase="true"/> <conditions> <add input="{HTTP_REFERER}" pattern="www.hws.com" negate="true"/> <add input="{HTTP_REFERER}" pattern="^$" negate="true" /> </conditions> <action type="Rewrite" url="/block.htm"/> </rule> </rules> </rewrite> </system.webServer> </configuration>
附:APACHE及NGINX下的防盗链设置
Apache下需要在.htaccess文件中添加以下内容
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ [NC] #如允许空REFERER,这一行可注释掉 RewriteCond %{HTTP_REFERER} !hws.com [NC] RewriteCond %{HTTP_REFERER} !www.hws.com [NC] RewriteRule .(jpg|jpeg|gif|png|js|css) /404.html [R=404,NC,L]
Nginx需要在网站配置文件server段中添加如下内容
location ~ .*\.(jpg|jpeg|gif|png|js|css)$ { access_log /dev/null; valid_referers none blocked hws.com www.hws.com; #如允许空REFERER,则把none blocked去掉 if ($invalid_referer){ return 404; } }
备注:
允许空Referer和不允许空Referer有什么区别?
在防盗链的白名单设置中,如果指名白名单中包含空的Referer,那么通过浏览器地址栏直接访问该资源URL是可以访问到的;
但如果不指名需要包含空的Referer,那么通过浏览器直接访问也是被禁止的。