1.假設充填連結圖片的主機網域為: www.test.com
2、修改httpd.conf
SetEnvIfNoCase Referer "^http://www.test.com/" local_ref=1
<FilesMatch ".(gif|jpg)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>
這個簡單的應用不光可以解決圖片盜鏈的問題,稍加修改還可以防止任意檔案盜鏈下載的問題。
使用以上的方法當從非指定的主機連結圖片時,圖片將無法顯示,如果希望顯示一張「禁止盜鏈」的圖片,我們可以用mod_rewrite 來實現。
首先在安裝apache 時要加上--enable-rewrite 參數載入mod_rewrite 模組。
假設「禁止盜鏈」的圖片為abc.gif,我們在httpd.conf 中可以這樣設定:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://( www.)?test.com /.*$ [NC]
RewriteRule .(gif|jpg)$ http://www.163.com/404.htm";//盜鏈回傳的位址
$okaysites = array(" http://www.163.com/","http://163.com "); //白名單
$ADMIN[url_1] = " http://www.163.com/download/";//下載地點1
$ADMIN[url_2] = "";//下載地點2,以此類推
$reffer = $HTTP_REFERER;
if($reffer) {
$yes = 0;
while(list($domain, $subarray) = each($okaysites)) {
if (ereg($subarray,"$reffer")) {
$yes = 1;
}
}
$theu = "url"."_"."$site";
if ($ADMIN[$theu] AND $yes == 1) {
header("Location: $ADMIN[$theu]/$file");
} else {
header("Location: $ADMIN[defaulturl]");
}
} else {
header("Location: $ADMIN[defaulturl]");
}
?>
使用方法:將上述程式碼儲存為dao4.php