程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 使用Apache的htaccess防止圖片被盜鏈的解決方法

使用Apache的htaccess防止圖片被盜鏈的解決方法

編輯:PHP綜合

方法一:
所需要的命令如下:
復制代碼 代碼如下:
RewriteEngine on 

 RewriteCond %{ HTTP_REFERER } !^$ 

 RewriteCond %{ HTTP_REFERER } !^http://(www.)?simue.com /.*$ [NC] 

 RewriteRule .(gif &line;jpg)$ - [F]

如果覺得讓別人的頁面開個天窗不好看,那可以用一張圖片來代替:

查看代碼
復制代碼 代碼如下:
 RewriteEngine on 

 RewriteCond %{ HTTP_REFERER } !^$ 

 RewriteCond %{ HTTP_REFERER } !^http://(www.)?simue.com/.*$ [NC] 

 RewriteRule .(gif &line;jpg)$ http://www.simue.com /替代圖片文件名 [R,L]
需要注意的是,如果通過FTP方式將創建好的.htaccess上傳到服務器上,傳輸模式應為ASCII而非Binary。上傳到服務器後,應將其屬性通過 CHMOD修改為644 或“RW-R–R–”,這樣,可以保證服務器能夠使用同時無法通過浏覽器修改,當然,.htaccess的可讀屬性也存在一定的風險:攻擊者可通過它找出 您要保護的對象或認證文件位置——解決辦法是將認證文件.htpasswd放到網站根目錄之外,這樣,便無法通過網絡找到它了。

方法二:
復制代碼 代碼如下:
查看代碼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]

簡單的解釋一下上述語句:
1、RewriteCond %{HTTP_REFERER} !^$ [NC]

允許空“HTTP_REFERER”的訪問,即允許用戶在浏覽器地址欄中直接輸入圖片地址時圖片文件的顯示。一般而言,這是可選的,不過,建議這麼設置,如果強迫必須具有“HTTP_REFERER”才能訪問,可能會帶來某些問題,比如說在用戶通過代理服務器訪問時。

2、RewriteCond %{HTTP_REFERER} !simue.com [NC]

設置允許訪問的HTTP來源,包括我們的網站 自身、Google、Baidu等。

3、RewriteRule .*\.(gif|jpg|png)$ http://www.simue.com/no.png [R,NC,L]

定義被盜鏈時替代的圖片,讓所有盜鏈 jpg、gif、png 等文件的網頁,顯示根目錄下的 no.png 文件。注意:替換顯示的圖片不要放在設置防盜鏈的目錄中,並且該圖片文件體積越小越好。當然你也可以不設置替換圖片,而是使用下面的語句即可:

RewriteRule .*\.(gif|jpg|png)$ - [F]

4、說明一下其中的R、NC 和 L

R 就是轉向的意思
NC 指的是不區分大小寫
L 的作用是指明本次轉向到此結束,後續的轉向不受先前判斷語句的影響

5、防止盜鏈的文件類型

上例中是 gif、jpg、png,而根據需要,可更改或添加其他文件類型,如rar、swf等,不同文件擴展名間使用“|”分割。

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