如何用.htaccess防止圖片、檔案盜連?

一個圖文並茂的網站,最怕的就是文章轉貼,雖然現一直在尊重著作權法,但還是有許多人假裝沒看見?許多人喜歡「複製→貼上」,但這樣一個轉貼動作卻會對一個網站造成莫大的傷害,除了辛苦寫的文章被偷走外,連圖片也盜連!圖片或檔案被盜連最怕的就是後續的流量,為了避免這種問題,我們必須自立自強,防止盜連這種可惡的行為!

如果是cPanel虛擬主機,防盜連的方法不外乎就是到cPanel後台進行設定。如果你是其他類型的空間後台或者是說你只有FTP權限的空間,那該怎麼辦呢?其實只要你的空間支援.htaccess檔案並且支援ReWrite ,不論是何種的虛擬主機空間後台或者是用自己電腦架網站,你都可以防止圖片與檔案的盜連喔!

※  注  意

做任何修正前,記得先做好備份。

第1步 先新增一個「htaccess.txt」文字文件。

第2步 開啟該文字文件,輸入以下程式碼:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://sofree.twbbs.org/.*$ [NC]
RewriteRule \.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ - [F]

語法小說明

»RewriteCond:設定哪些是允許存取的連線。

所以上方程式碼,你可以把http://sofree.twbbs.org改成你網站網址,這樣就會允許你網站可以讀取檔案。如果你想要允許多個網站,就按照上面的RewriteCond寫法,看要讓幾個網站可以連,就加幾串語法就可以了!

»RewriteRule:指定哪些檔案不可盜連,盜連後的錯誤訊息顯示設定。

»[F]:顯示錯誤訊息為文字,403 Forbidden是禁止讀取。

範例

RewriteRule \.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ - [F]

»[R,NC]:顯示錯誤訊息為圖片

範例

RewriteRule .*\.(jpg|gif|png|bmp|rar|zip|exe)$ /content/no_hotlink.jpeg [R,NC]

»任何檔案或圖片都被盜連

請把

RewriteRule \.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ - [F]

改成

RewriteRule .*$ - [F]

這樣所有檔案都會自動被限制住,只有上面RewriteCond有設定的網址才可以讀取,而若遇到盜連者,他那邊圖片或檔案將不會顯示出來。

第3步 調整完後,請將您的「htaccess.txt」上傳到網站根目錄,並且將檔案改名為「.htaccess」即可。

請記得開啟FTP的顯示隱藏檔案功能,如果不會開請參考這篇教學:

如果你空間中很來就有.htaccess檔案,那請將檔案下載回來,開啟後在最下方加上先前那串語法,但「RewriteEngine on 」不用加入。

用.htaccess防止圖片、檔案盜連

設定完成後,這樣就已經開始防盜連囉!不過若你設定錯誤,很可能連你自己網站也讀不到檔案與圖片,趕快到自己網站看一下是否一切安好呢?如果設定錯誤,又找不出原因,建議你先把.htaccess檔案砍掉,這樣就會恢復正常連線,然後再重新設定一次看看吧!

另外,在文章一開始有提到,「圖片或檔案被盜連最怕的就是後續的流量」為什麼呢?因為盜文者因為是「複製→貼上」,所以圖片、檔案的原始位置都還在你這邊,如果有人在他那邊下載檔案,那麼檔案原始連結還是連到你空間,網站流量還是吃你的!轉貼很可能一文多貼,結果圖片檔案都吃你的流量,但是網站人氣卻不屬於你自己的,這樣不僅損失人氣,還白白消耗流量,這樣很不划算吧?

參考網站