使用Apache的htaccess防止圖片被盜鏈的解決方法
方法一:
所需要的命令如下:
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?simue.com /.*$ [NC]
RewriteRule .(gif &line;jpg)$ - [F]
如果覺得讓別人的頁面開個(gè)天窗不好看,那可以用一張圖片來代替:
查看代碼
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?simue.com/.*$ [NC]
RewriteRule .(gif &line;jpg)$ http://www.simue.com /替代圖片文件名 [R,L]
需要注意的是,如果通過FTP方式將創(chuàng)建好的.htaccess上傳到服務(wù)器上,傳輸模式應(yīng)為ASCII而非Binary。上傳到服務(wù)器后,應(yīng)將其屬性通過 CHMOD修改為644 或“RW-R–R–”,這樣,可以保證服務(wù)器能夠使用同時(shí)無法通過瀏覽器修改,當(dāng)然,.htaccess的可讀屬性也存在一定的風(fēng)險(xiǎn):攻擊者可通過它找出 您要保護(hù)的對(duì)象或認(rèn)證文件位置——解決辦法是將認(rèn)證文件.htpasswd放到網(wǎng)站根目錄之外,這樣,便無法通過網(wǎng)絡(luò)找到它了。
方法二:
查看代碼01 RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !simue.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteRule .*\.(gif|jpg)$ http://www.simue.com /no.png [R,NC,L]
簡(jiǎn)單的解釋一下上述語句:
1、RewriteCond %{HTTP_REFERER} !^$ [NC]
允許空“HTTP_REFERER”的訪問,即允許用戶在瀏覽器地址欄中直接輸入圖片地址時(shí)圖片文件的顯示。一般而言,這是可選的,不過,建議這么設(shè)置,如果強(qiáng)迫必須具有“HTTP_REFERER”才能訪問,可能會(huì)帶來某些問題,比如說在用戶通過代理服務(wù)器訪問時(shí)。
2、RewriteCond %{HTTP_REFERER} !simue.com [NC]
設(shè)置允許訪問的HTTP來源,包括我們的網(wǎng)站 自身、Google、Baidu等。
3、RewriteRule .*\.(gif|jpg|png)$ http://www.simue.com/no.png [R,NC,L]
定義被盜鏈時(shí)替代的圖片,讓所有盜鏈 jpg、gif、png 等文件的網(wǎng)頁,顯示根目錄下的 no.png 文件。注意:替換顯示的圖片不要放在設(shè)置防盜鏈的目錄中,并且該圖片文件體積越小越好。當(dāng)然你也可以不設(shè)置替換圖片,而是使用下面的語句即可:
RewriteRule .*\.(gif|jpg|png)$ - [F]
4、說明一下其中的R、NC 和 L
R 就是轉(zhuǎn)向的意思
NC 指的是不區(qū)分大小寫
L 的作用是指明本次轉(zhuǎn)向到此結(jié)束,后續(xù)的轉(zhuǎn)向不受先前判斷語句的影響
5、防止盜鏈的文件類型
上例中是 gif、jpg、png,而根據(jù)需要,可更改或添加其他文件類型,如rar、swf等,不同文件擴(kuò)展名間使用“|”分割。
相關(guān)文章
Yii框架學(xué)習(xí)筆記之session與cookie簡(jiǎn)單操作示例
這篇文章主要介紹了Yii框架學(xué)習(xí)筆記之session與cookie簡(jiǎn)單操作,結(jié)合實(shí)例形式分析了Yii框架session與cookie的定義、設(shè)置、讀寫、刪除等簡(jiǎn)單操作技巧,需要的朋友可以參考下2019-04-04php微信公眾賬號(hào)開發(fā)之前五個(gè)坑(一)
這篇文章主要為大家詳細(xì)介紹了php微信公眾賬號(hào)開發(fā)之前五個(gè)坑,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09php下拉選項(xiàng)的批量操作的實(shí)現(xiàn)代碼
這篇文章介紹了php下拉選項(xiàng)的批量操作的實(shí)現(xiàn)代碼,有需要的朋友可以參考一下2013-10-10thinkphp實(shí)現(xiàn)面包屑導(dǎo)航(當(dāng)前位置)例子分享
今天把博客一些細(xì)節(jié)完善了一下,其中修改了一下欄目頁和文章頁中的“當(dāng)前位置”。2014-05-05PHP框架Laravel中使用UUID實(shí)現(xiàn)數(shù)據(jù)分表操作示例
這篇文章主要介紹了PHP框架Laravel中使用UUID實(shí)現(xiàn)數(shù)據(jù)分表操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了Laravel框架基于UUID進(jìn)行數(shù)據(jù)分表的相關(guān)操作步驟、實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2018-05-05php獲取301跳轉(zhuǎn)URL簡(jiǎn)單實(shí)例
這篇文章主要介紹了php獲取301跳轉(zhuǎn)URL簡(jiǎn)單實(shí)例,有需要的朋友可以參考一下2013-12-12Joomla調(diào)用系統(tǒng)自帶編輯器的實(shí)現(xiàn)方法
這篇文章主要介紹了Joomla調(diào)用系統(tǒng)自帶編輯器的實(shí)現(xiàn)方法,實(shí)例分析了Joomla調(diào)用系統(tǒng)自帶編輯器的具體步驟、相關(guān)函數(shù)與使用技巧,需要的朋友可以參考下2016-05-05