2011-10-04 46 views
1

我有一個.htaccess文件,其中包含指令以防止靜態資產(圖像,CSS和JavaScript文件)的熱鏈接。相關的代碼如下所示:防止生成縮略圖的熱鏈接?

RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?ipwuk.com/.*$ [NC] 
RewriteRule \.(gif|jpg|js|css|png)$ - [F,L] 

這很棒,做這項工作;不過,我有一個自動生成縮略圖的PHP腳本(並且不包含URL中的文件擴展名)。樣本縮略圖URL看起來是這樣的:

http://example.com/inc/image.php/4e7efde2ee8ac.jpg/610/343/fill

或者:

http://example.com/inc/image.php/[seed].[extension]/[寬度]/[高度]/[拇指型]

如何防止上述腳本生成的圖像被熱鏈接(我懷疑我的客戶正在做什麼,結果就是每天吞吐帶寬超過150MB)?

+0

does ** image.php **只生成縮略圖或不生成縮略圖? – undone

+0

是的,'image.php'只生成縮略圖。它採用如上所述的參數,加載一個'Thumbnail'類,然後根據需要生成縮略圖,然後流式傳輸結果圖像。 –

回答

1

此代碼拒絕對image.php這不是直接或指定的網站的所有請求。

RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?ipwuk\.com/.*$ [NC] 
RewriteCond %{REQUEST_URI} ^/image.php(.*)$ [NC] 
RewriteRule ^(.*)$ - [F,L] 
1

難道你不能實際防止 - 編輯:沮喪 - 它在生成縮略圖本身的腳本?

在僞PHP:

if (parse_url($_SERVER['HTTP_REFERER']) != "yourSite"){ 

    //generate thumbnail that says "don't hotlink, scum!" 

} 
else { 

    //do your normal thumbnail generation routine 

}