程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> apache&nginx防止盜鏈設置教程

apache&nginx防止盜鏈設置教程

編輯:PHP基礎知識
 

圖片防止盜鏈也是個老生常談的話題,然而,似乎總是陷入道高一尺魔高一丈的無限死循環中。盜鏈者往往千方百計,絞盡腦汁地去實現圖片的轉載。

對於一個圖片站來說,盜鏈更是一種災難。流量損失不說,無形中也大大加重了服務器的負載。

本文中,筆者分別提供apache和nginx兩款常用的web服務器的防止盜鏈設置。希望能給各位多點啟發。

#apache的防止盜鏈設置,可以在.htaccess中設置
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yoursite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpg|gif|bmp|png)$ /images/fangzhidaolian.jpg [L]

上面這樣的設置會將不是來自於本站的圖片引用全部重定向到/images/fangzhidaolian.jpg 。這樣的設置太過於嚴格了,你會限制住從rss中訪問過來的用戶。因此,我們要對rss和搜索引擎開放。

#允許搜索引擎和RSS服務器訪問
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yoursite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?google\.(.+)/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?(.*\.)?google\.(.+)/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?bing\.(.+)/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?(.*\.)?bing\.(.+)/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yahoo\.(.+)/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?(.*\.)?yahoo\.(.+)/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?(.*\.)?xianguo\.(.+)/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?(.*\.)?zhuaxia\.(.+)/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?(.*\.)?youdao\.(.+)/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?(.*\.)?baidu\.(.+)/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|png)$ /transparent.gif [L]


nginx的防止盜鏈設置似乎更簡單一些。

#nginx防止盜鏈設置
location ~* \.(jpg|jpeg|png|gif|css|js|swf|mp3|avi|flv|xml|zip|rar)$ {
valid_referers none blocked *.yoursite.com *.baidu.com
*.feedsky.com *.google.com *.xiaoguo.com *.zhuaxia.com;
if ( $invalid_referer )
return /images/fangzhidaolian.jpg;
}

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved