使用.htaccess設(shè)置圖片防盜鏈的詳細(xì)方法
真正有用的.htaccess寫法為
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !jb51.net [NC]
RewriteCond %{HTTP_REFERER} !youdao.com [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !twitter.com [NC]
RewriteCond %{HTTP_REFERER} !facebook.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.com.tw [NC]
RewriteCond %{HTTP_REFERER} !google.com.sg [NC]
RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !soso.com [NC]
RewriteCond %{HTTP_REFERER} !mail.qq.com [NC]
RewriteCond %{HTTP_REFERER} !cn.bing.com [NC]
RewriteCond %{HTTP_REFERER} !image.baidu.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteRule .(png|jpg)$ /no.gif [R,NC,L]
我把.htaccess文件和no.gif文件一起上傳到了根目錄,注意看最后一行,當(dāng)指定類型(png或jpg)的圖片出現(xiàn)在非上述列表中的網(wǎng)站時(shí),圖片會(huì)自動(dòng)替換成no.gif。
解釋一下上述語句:
1、RewriteCond %{HTTP_REFERER} !^$ [NC]
允許空“HTTP_REFERER”的訪問,即允許用戶在瀏覽器地址欄中直接輸入圖片地址時(shí)圖片文件的顯示。一般而言,這是可選的,不過,建議這么設(shè)置,如果強(qiáng)迫必須具有“HTTP_REFERER”才能訪問,可能會(huì)帶來某些問題,比如說在用戶通過代理服務(wù)器訪問時(shí)。
2、 RewriteCond %{HTTP_REFERER} !zhukun.net [NC]
設(shè)置允許訪問的HTTP來源,包括我們的自身站點(diǎn)、Google、Baidu、Bloglines、Feedburner、feedsky等。
3、 RewriteRule .(jpg|png)$ /no.gif [R,NC,L]
定義被盜鏈時(shí)替代的圖片,讓所有盜鏈 jpg、png 等圖片的網(wǎng)頁,顯示根目錄下的 no.gif 文件。注意:這里必須有一個(gè)“/”,而且no.gif件體積越小越好,越小就越節(jié)省流量。
4、說明一下其中的 R、NC 和 L
R 就是轉(zhuǎn)向的意思
NC 指的是不區(qū)分大小寫
L 指明本次轉(zhuǎn)向到此結(jié)束,后續(xù)的轉(zhuǎn)向不受先前判斷語句的影響
特別注意:不建議同時(shí)禁止gif|jpg|png這三種圖片文件,比如你已經(jīng)禁止了gif,但是卻用了no.gif來替換盜鏈圖片,這樣肯定會(huì)出問題。如果你想同時(shí)禁止這三種類型,可以使用以下方法來解決:
RewriteRule .(gif|png|jpg)$ http://farm3.static.flickr.com/2743/4462030670_dc36df0e3d_o.png [R,NC,L]
即用其它服務(wù)器上(未設(shè)置過防盜鏈)的圖片來替換演示。
本方法已在Godaddy的免費(fèi)空間上測(cè)試成功,再次聲明一下,清風(fēng)小荷塘原創(chuàng)文章,轉(zhuǎn)載請(qǐng)標(biāo)明來源。
下面是其它網(wǎng)友的補(bǔ)充,直接本地例外一個(gè)目錄
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/images
RewriteRule ^.*$ - [L]
RewriteCond %{REQUEST_FILENAME} \.(jpg|gif|bmp|zip|rar|mp3|txt|png|wma|wmv)$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !www.laoyao.me [NC]
RewriteCond %{HTTP_REFERER} !laoyao.me [NC]
RewriteCond %{HTTP_REFERER} !www.zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !www.google.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !www.google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !www.google.cn [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !www.baidu.com [NC]
RewriteCond %{HTTP_REFERER} !www.baidu.cn [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.cn [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !www.ask.com [NC]
RewriteCond %{HTTP_REFERER} !www.163.com [NC]
RewriteCond %{HTTP_REFERER} !www.yahoo.com [NC]
RewriteCond %{HTTP_REFERER} !www.sogou.com [NC]
RewriteCond %{HTTP_REFERER} !www.soso.com [NC]
RewriteCond %{HTTP_REFERER} !www.sina.com.cn [NC]
RewriteCond %{HTTP_REFERER} !www.msn.com [NC]
RewriteCond %{HTTP_REFERER} !www.feedsky.com [NC]
RewriteCond %{HTTP_REFERER} !www.feedburner.com [NC]
RewriteRule (.*) /images/error.gif [R,NC,L]
代碼說明:代碼第二行,意思是將網(wǎng)站images目錄的權(quán)限打開,也就是說images文件夾下的圖片不進(jìn)行防盜鏈,為什么呢?因?yàn)槲覀兊谋I鏈警告圖片放在這個(gè)目錄下,你要是不把這個(gè)目錄權(quán)限打開,那么別人盜鏈的時(shí)候,連這張盜鏈警告圖片也顯示不出來,只能顯示紅叉叉,這不是我們想要的效果。代碼第四行為需要防盜鏈文件的后綴名,可以自行根據(jù)需要修改。后邊那些代碼的意思是哪些網(wǎng)站可以不防盜鏈,都是一些搜索引擎之類的,還有自己站的網(wǎng)址。代碼最后一行為盜鏈時(shí)顯示的警告圖片。也可以將這張圖片存放到其他的網(wǎng)站,比如某些圖片存儲(chǔ)空間,這樣的話就可以更加節(jié)省本站流量了。
補(bǔ)充方法三:
.htaccess寫法為如下,下載本文的附件,附件中包括了PSD源文件。周到吧,為了不想再做圖片的,只要打開改一下網(wǎng)址就可以用了,當(dāng)然也可以自己設(shè)計(jì)!國外虛擬主機(jī)流量太小,圖片防盜鏈接是必須做的。
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !yziw.net [NC]
RewriteCond %{HTTP_REFERER} !youdao.com [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !twitter.com [NC]
RewriteCond %{HTTP_REFERER} !facebook.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.com.tw [NC]
RewriteCond %{HTTP_REFERER} !google.com.sg [NC]
RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !soso.com [NC]
RewriteCond %{HTTP_REFERER} !mail.qq.com [NC]
RewriteCond %{HTTP_REFERER} !cn.bing.com [NC]
RewriteCond %{HTTP_REFERER} !image.baidu.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteRule .(gif|png|jpg)$ http://www.yziw.net/images/linkeldiy.png [R,NC,L]
注意:最后一行替換圖片要改成自己的
繼續(xù)補(bǔ)充一下
先解釋一下圖片防盜鏈和轉(zhuǎn)向:
Q 圖片防盜鏈有什么用?
A 防止其它網(wǎng)站盜用你的圖片,浪費(fèi)你寶貴的流量。
Q 圖片轉(zhuǎn)向有什么用?
A 如果你的網(wǎng)站以圖片為主,哪天發(fā)現(xiàn)月底沒到流量就快用光了,那就可以利用圖片轉(zhuǎn)向,在不修改網(wǎng)頁的前提下,把圖片下載請(qǐng)求轉(zhuǎn)向到其它空間(比如試用主機(jī)),臨時(shí)過渡。
下面開始講解,比如你的圖片都在img目錄下,那就在該目錄下放一個(gè)名為 .htaccess 的文件,內(nèi)容如下:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !chong4.com.cn [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]
RewriteRule ^(.*)$ http:\/\/image.chong4.com.cn\/image\/$1 [L]
大概解釋一下:
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !chong4.com.cn [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
這部分是判斷是否盜鏈,如果以上條件都成立(即訪問圖片的請(qǐng)求,既不是直接輸入網(wǎng)址,也不是來自chong4.com.cn,也不是來自zhuaxia.com,也不是來自google.com,也不是來自baidu.com,也不是來自bloglines.com 的話),就執(zhí)行下列轉(zhuǎn)向:
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]
意思是讓所有盜鏈 img 目錄下 jpg、gif、png、bmp、swf、jpeg 文件的網(wǎng)頁,顯示的圖片都用 image 目錄下的 replace.gif 圖片替換掉。注意替換顯示的圖片不要放在設(shè)置防盜鏈的 img 目錄下。
如果照上面的規(guī)則判斷出圖片請(qǐng)求不是盜鏈的,就執(zhí)行以下轉(zhuǎn)向:
RewriteRule ^(.*)$ http:\/\/image.chong4.com.cn\/image\/$1 [L]
意思對(duì) img 目錄下所有的請(qǐng)求都轉(zhuǎn)向到目標(biāo)服務(wù)器,比如有個(gè)圖片原來的 url 是 http://www.chong4.com.cn/img/girl.jpg ,現(xiàn)在就會(huì)轉(zhuǎn)到 http://image.chong4.com.cn/image/girl.jpg 去。當(dāng)然了你得先把原服務(wù)器 img 目錄下的文件統(tǒng)統(tǒng)拷貝到臨時(shí)服務(wù)器的 image 目錄下,轉(zhuǎn)向才會(huì)真正可用。起到的效果就是把原服務(wù)器圖片下載所占用的流量統(tǒng)統(tǒng)省下,讓臨時(shí)服務(wù)器來承受了。
相關(guān)文章
ssh更改默認(rèn)端口號(hào)及實(shí)現(xiàn)免密碼遠(yuǎn)程登錄
這篇文章主要介紹了ssh更改默認(rèn)端口號(hào)及實(shí)現(xiàn)免密碼遠(yuǎn)程登錄的相關(guān)資料,需要的朋友可以參考下2017-10-10Ingress七層路由機(jī)制實(shí)現(xiàn)域名的方式訪問k8s
這篇文章主要為大家介紹了Ingress七層路由機(jī)制實(shí)現(xiàn)域名的方式訪問k8s內(nèi)部應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03WordPress網(wǎng)站遷移到新主機(jī)防火墻配置
這篇文章主要為大家介紹了WordPress網(wǎng)站遷移到新主機(jī)防火墻配置,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03近期服務(wù)器出現(xiàn)的安全問題以及防范措施2017.05
近期接到idc商的反饋,最近很多使用windows的主機(jī)都被拿下控制權(quán),直接修改iis等2017-08-08