防盜鏈一般是對服務器的圖片,資源下載這些東西進行處理,下面我們就利用了apache的一些功能來做處理,有需要的朋友可以參考一下。
修改httpd.conf,找到 <Dirctory "/var/www/html">,在這個Dirctory容器內添加:
- SetEnvIfNoCase Referer "^http://www.companysz.com/" local_ref=1
- <FilesMatch ".(JPG|jpg)">
- Order Allow,Deny
- Allow from all
- Deny from env=local_ref
- </FilesMatch>
- #service httpd restart
其中的FilesMatch 對象,還需要根據自身的環境進行改動。比如路徑或者添加(JPG|jpg|gif|mp3)等等
- SetEnvIf Referer "^http://(.)+.Vevb.com/" local_ref=1
- SetEnvIf Referer "^http://(.)+.isql.cn/" local_ref=1
- #SetEnvIf Referer "^http://(.)+.other.org.cn/" local_ref=1
- SetEnvIf Request_URI "/logo(.)+" local_ref=0
- <FilesMatch ".(mp3|wmv|png|gif|jpg|jpeg|avi|bmp|ram|rmvb|rm|rar|zip|mp3)">
- Order Allow,Deny
- Allow from env=local_ref
- </FilesMatch>
解釋:
1. 藍色部分,表示設置允許訪問的referer地址,第一行的意思為所有http協議訪問,以.hzhuti.com結尾的域名地址,第二行類似,只是換成了.isql.cn,表問我前面的鬼符是什么,不懂得可以去翻正則表達式的研究文獻,不想深究的可以照貓畫虎設置自己的網站。
2. 綠色部分,表示不在上述引用域名范圍內,但可以被放行的特例,本例中表示網站/目錄,所有以logo開頭的文件(用作允許其它網站的友情連接引用本站logo)。
3. 橙色部分是設置反盜鏈的關鍵部分,上面每一個設置都聯系到了local_ref這個環境變量,只有這個變量為1,則允許被引用,否則顯示一個X。
4. 紫色部分設置了哪些擴展名的文件加入反盜鏈的規則。
補充:我是直接設置在httpd.conf里面的,如果只想針對哪個目錄設置,可以放在目錄的.htaccess文件內。
然后記得檢查 http.conf 中論壇所在目錄的設置,增加代碼內容
AllowOverride FileInfo AuthConfig Limit
以上方法可以禁止用戶從其他網站或者直接在瀏覽器地址欄輸入地址的方式訪問附件。
另外,網上好多文檔,都有錯誤,把SetEnvIf寫成了SetEnvIfNoCase
附我以前用mod_rewrite寫的
- RewriteEngine on
- RewriteCond %{HTTP_REFERER} !^$
- RewriteCond %{HTTP_REFERER} !^http://bbs.Vevb.com/.*[GV_contentText]nbsp; [NC]
- RewriteCond %{HTTP_REFERER} !^http://bbs.Vevb.com[GV_contentText]nbsp; [NC]
- RewriteCond %{HTTP_REFERER} !^http://www.companysz.com/.*[GV_contentText]nbsp; [NC]
- RewriteCond %{HTTP_REFERER} !^http://www.companysz.com[GV_contentText]nbsp; [NC]
- RewriteCond %{HTTP_REFERER} !^http://Vevb.com/.*[GV_contentText]nbsp; [NC]
- RewriteCond %{HTTP_REFERER} !^http://Vevb.com[GV_contentText]nbsp; [NC]
- RewriteRule .*.(mp3|wmv|png|gif|jpg|jpeg|avi|bmp|ram|rmvb|rm|rar|zip)$ http://www.companysz.com [R,NC]
上面的,需要Rewrite模板.所有指定的文件,如果Referer不是上面的值,將被重定向到首頁.
新聞熱點
疑難解答