用 htaccess 來擋圖片盜連並且讓 google reader 可讀

寫 blog 這麼多年雖然自己不是啥人氣寫手,也不是啥熱門網站但是總是累積了一點文章,從一開始寫 blog 時就喜歡加入一點圖片,因為自己是理科人一張圖片勝過千言萬語,但是慢慢的我發現圖片戰的流量讓我的主機稱不了多久就爆流量,一路輾轉換了幾個圖床都不滿意,最後定居在 photobucket 下,photobucket 管理方便還有簡單的修圖功能讓我使用非常順手,他給 1gb 空間而且每月 10gb 流量剛剛好適合小型 blog,可是這兩個月遇到一件非常有趣的事情。

2010-04-04_153732

最近 HBO 撥太平洋戰爭很紅,剛好寫了一篇心得文裡面附上幾張抓圖,流量大概 1500 上下,但是我習慣會去看流量圖的走勢,發現奇怪圖片流量遠大於自己 blog 的流量爬到快三萬,這時發現被盜連了,因為圖片是放在 photobucket 中無法擋盜連只能加上浮水印,可是這樣治標不治本,因為流量一掛是整個 blog 的圖都出不來,所以我就馬上將幾張熱門圖轉到我的檔案空間去,檔案空間流量無限吃不怕,順便加上一些規則讓盜圖的人只能看到下面那一張圖。

這道理其實很簡單,目前的虛擬主機都支援 .htaccess,只要將規則寫信去就可以讓別的網站都無法連圖,只要連圖就會跑出偷圖賊的圖片。


RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?mydomain.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?www.mydomain.com [NC]
RewriteRule .*.(jpg|gif|png|bmp)$ /thief.jpg [R,NC]

上面那就是語法,將裡面的“mydomain.com”改成自己的網站即可,有多少加多少,而最後一行的 “ /thief.jpg "就是如果被盜連會出現警告圖片的位置,然後將檔案傳送到網站的根目錄底下即可。

改完後其實會出現一個很常見的問題,很多人都沒有自己訂閱自己的 rss 習慣,所以都不知道訪客在 rss reader 中看到你的文章其實是破圖的,所以記得要在加上幾行程式碼確保安全,目前最大的是 bloglines 以及 google reader ,這裡就只以 google reader 做示範其他就依樣畫葫蘆即可。


RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/view/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/m/view/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.com.tw/reader/view/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.com.tw/reader/m/view/.*$ [NC]

將上面的規則也加入 .htaccess 中就可以打該外連到 google reader 的線路,是不是很簡單呢?如此一來就可以降低自己的流量避免整個站都被拖垮。如果有更好的辦法也歡迎突出討論 😀

Leave a Reply

Your email address will not be published.