使用.htaccess怎么設(shè)置圖片防盜鏈,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司主營金平網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),金平h5微信小程序定制開發(fā)搭建,金平網(wǎng)站營銷推廣歡迎金平等地區(qū)企業(yè)咨詢
真正有用的.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)站時,圖片會自動替換成no.gif。
解釋一下上述語句:
1、RewriteCond %{HTTP_REFERER} !^$ [NC]
允許空“HTTP_REFERER”的訪問,即允許用戶在瀏覽器地址欄中直接輸入圖片地址時圖片文件的顯示。一般而言,這是可選的,不過,建議這么設(shè)置,如果強(qiáng)迫必須具有“HTTP_REFERER”才能訪問,可能會帶來某些問題,比如說在用戶通過代理服務(wù)器訪問時。
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]
定義被盜鏈時替代的圖片,讓所有盜鏈 jpg、png 等圖片的網(wǎng)頁,顯示根目錄下的 no.gif 文件。注意:這里必須有一個“/”,而且no.gif件體積越小越好,越小就越節(jié)省流量。
4、說明一下其中的 R、NC 和 L
R 就是轉(zhuǎn)向的意思
NC 指的是不區(qū)分大小寫
L 指明本次轉(zhuǎn)向到此結(jié)束,后續(xù)的轉(zhuǎn)向不受先前判斷語句的影響
特別注意:不建議同時禁止gif|jpg|png這三種圖片文件,比如你已經(jīng)禁止了gif,但是卻用了no.gif來替換盜鏈圖片,這樣肯定會出問題。如果你想同時禁止這三種類型,可以使用以下方法來解決:
RewriteRule .(gif|png|jpg)$ http://farm3.static.flickr.com/2743/4462030670_dc36df0e3d_o.png [R,NC,L]
即用其它服務(wù)器上(未設(shè)置過防盜鏈)的圖片來替換演示。
本方法已在Godaddy的免費(fèi)空間上測試成功,再次聲明一下,清風(fēng)小荷塘原創(chuàng)文章,轉(zhuǎn)載請標(biāo)明來源。
下面是其它網(wǎng)友的補(bǔ)充,直接本地例外一個目錄
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鏈警告圖片放在這個目錄下,你要是不把這個目錄權(quán)限打開,那么別人盜鏈的時候,連這張盜鏈警告圖片也顯示不出來,只能顯示紅叉叉,這不是我們想要的效果。代碼第四行為需要防盜鏈文件的后綴名,可以自行根據(jù)需要修改。后邊那些代碼的意思是哪些網(wǎng)站可以不防盜鏈,都是一些搜索引擎之類的,還有自己站的網(wǎng)址。代碼最后一行為盜鏈時顯示的警告圖片。也可以將這張圖片存放到其他的網(wǎng)站,比如某些圖片存儲空間,這樣的話就可以更加節(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]
注意:最后一行替換圖片要改成自己的
禁止圖片外鏈.htaccess文件下載
繼續(xù)補(bǔ)充一下
先解釋一下圖片防盜鏈和轉(zhuǎn)向:
Q 圖片防盜鏈有什么用?
A 防止其它網(wǎng)站盜用你的圖片,浪費(fèi)你寶貴的流量。
Q 圖片轉(zhuǎn)向有什么用?
A 如果你的網(wǎng)站以圖片為主,哪天發(fā)現(xiàn)月底沒到流量就快用光了,那就可以利用圖片轉(zhuǎn)向,在不修改網(wǎng)頁的前提下,把圖片下載請求轉(zhuǎn)向到其它空間(比如試用主機(jī)),臨時過渡。
下面開始講解,比如你的圖片都在img目錄下,那就在該目錄下放一個名為 .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]
這部分是判斷是否盜鏈,如果以上條件都成立(即訪問圖片的請求,既不是直接輸入網(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ī)則判斷出圖片請求不是盜鏈的,就執(zhí)行以下轉(zhuǎn)向:
RewriteRule ^(.*)$ http:\/\/image.chong4.com.cn\/image\/$1 [L]
意思對 img 目錄下所有的請求都轉(zhuǎn)向到目標(biāo)服務(wù)器,比如有個圖片原來的 url 是 http://www.chong4.com.cn/img/girl.jpg ,現(xiàn)在就會轉(zhuǎn)到 http://image.chong4.com.cn/image/girl.jpg 去。當(dāng)然了你得先把原服務(wù)器 img 目錄下的文件統(tǒng)統(tǒng)拷貝到臨時服務(wù)器的 image 目錄下,轉(zhuǎn)向才會真正可用。起到的效果就是把原服務(wù)器圖片下載所占用的流量統(tǒng)統(tǒng)省下,讓臨時服務(wù)器來承受了。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。