(1.)首先要确认Apache的rewrite module可用,打开 httpd.conf 文件,若是前面有注释去掉html
LoadModule rewrite_module modules/mod_rewrite.so
(2.)在Apache主配置文件中找到对应的位置(或虚拟主机中),规则配置在<Directory>里面加入下列代码 [ 也可在须要防盗链的目录下新建 .htaccess,写入一下内容 ]:nginx
#防盗链配置 RewriteEngine On #启用重写 RewriteCond %{HTTP_REFERER} !^$ #容许空“HTTP_REFERER”的访问,即容许用户在浏览器地址栏中直接输入图片地址时图片文件的显示 RewriteCond %{HTTP_REFERER} !benet\.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !www\.benet\.com/.*$ [NC] #设置容许访问的HTTP来源,包括网站自身 RewriteRule .*\.(gif|jpg|swf)$ http://www.benet.com/about/nolink.png [R,NC,L] #将不知足referer条件的访问重定向至nolink.png。nolink.png位于容许“盗链”的目录about中,要至关注意,否则,警告信息和图片将没法在对方网站上显示。
相关选项的解释web
1.RewriteEngine On#启用rewrite,要想rewrite起做用,必需要写上浏览器
2.RewriteCond test-string condPattern #写在RewriteRule以前,能够有一或N条,用于测试rewrite的匹配条件,具体怎么写,后面会详细说到。服务器
3.RewriteRule Pattern Substitution#规则post
4. %{HTTP_REFERER}:服务器变量,HTTPReferer是header的一部分,当浏览器向web服务器发送请求的时候,通常会带上Referer,告诉服务器我是从哪一个页面连接过来的,服务器藉此能够得到一些信息用于处理。好比从我主页上连接到一个朋友那里,他的服务器就可以从HTTP Referer中统计出天天有多少用户点击我主页上的连接访问他的网站。测试
5.[ NC]指的是不区分大小写,[R]强制重定向redirect网站
6.字母L表示若是能匹配本条规则,那么本条规则是最后一条(Last),忽略以后的规则。
ui
防盗链配置的说明:url
1. 红色部分:表示本身的信任站点。对个人站点来讲,设置为 http://www.benet.com和 http://benet.com
2. 绿色部分:要保护文件的扩展名(以|分开)。以这些为扩展名的文件,必须经过红色标注的网址引用,才能够访问。
3. 蓝色部分:定义被盗链时替代的图片,让全部盗链 jpg、gif、swf 等文件的网页,显示网页文档根目录下的about/ nolink.png 文件。注意:替换显示的图片不要放在设置防盗链的目录中,而且该图片文件体积越小越好。
固然你也能够不设置替换图片,而是使用下面的语句便可:RewriteRule .*\.(gif|jpg|png)$ - [F]
注:[F] (强制URL为被禁止的forbidden),强制当前URL为被禁止的,即,当即反馈一个HTTP响应代码403(被禁止的)。
即利用SetEnvIfNoCase和access。这个方法能够经过阻止某些机器人或蜘蛛爬虫抓取你的网站来节省你的带宽流量。
语法: SetEnvIfNoCase attribute regex [!]env-variable[=value] [[!]env-variable[=value]] ...
注:Referer :指明了请求当前资源原始资源的URL,使用referer是能够防盗链
(1.)在Apache主配置文件中找到对应的位置(或虚拟主机中),加入下列代码:
SetEnvIfNoCase Referer "^$" local_ref SetEnvIfNoCase Referer "www.benet.com/.*$" local_ref SetEnvIfNoCase Referer "benet.com/.*$" local_ref <filesmatch "\.(mp3|mp4|zip|rar|jpg|gif)"> #2.4版本以上,方法以下: Require all denied Require env local_ref </filesmatch> # 2.4版本如下的 # 方法一: Order Deny,Allow Allow from env=local_ref Deny from all # 方法二: Order Allow,Deny Allow from env=local_ref
相关文章连接:Apache的防盗链配置及详解