Yblog = yourblog,你的優質部落格。願真田幸村紅鎧策馬赤備突擊的身影,帶給我們更多的勇氣。
星期天, 三月 5, 2006
透過Apache的.htaccess設置圖片防盜連功能
本站自從搬到美國的新主機後,原本在我自己舊主機設置的防圖片盜連功能就無效了,必須得重新設置防盜連的設定。

對租用網站主機空間的用戶而言,透過Apache的.htaccess來設置防盜連功能(anti hotlink),是最方便的。

新的設定方式如下:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://yblog.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://yblog.org$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yblog.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yblog.org$ [NC]
RewriteRule .*\.(jpg|gif|png|bmp|rar|zip|exe)$ /content/no_hotlink.jpeg [R,NC]

如果你想在自己的網站主機上也使用這樣的防盜連功能,生成一個.htaccess文件放到你欲限制的目錄(根目錄最好避免,在根目錄使用的.htaccess建議用作其它用途,欲限制的目錄下才放本文設定的防盜連方式)。在Windows平台上如果發現自己無法產生.htaccess文件,可以用記事本或其它的文字編輯軟體,另存新檔時,檔名選擇.htaccess即可。

RewriteCond可指定從哪些域名來連線是許可的。
RewriteRule則指定哪些附檔名類型不能被盜連(hotlink),後面可以指定連結到某個錯誤訊息頁面,或者是一張圖片。

如果RewriteRule這一行設定成RewriteRule \.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ - [F],則表示盜連的人,會看到403錯誤訊息,顯示禁止存取(403 Forbidden)。
More... funp HemiDemi MyShare del.icio.us technorati Google Bookmarks Digg
ivan 發表於 6:32 AM | 文章分類: www, 站務相關 | 標籤列表:

迴響留言
好像有問題。 XD
!^ 應該要改成 ^ 才對,不然會反而擋住 yblog.org 的連線。
由 小斌 發表於 5:25, Apr 2, 2006
218.170.4.* | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
抱歉,我自己搞錯了。
請把我的錯誤東西連這篇一起刪掉,非常抱歉。 orz
由 小斌 發表於 6:11, Apr 2, 2006
218.170.4.* | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
嗯嗯,文章中這樣的設定是沒錯的,大概瞭解了嗎?
ivan 發表於 11:33, Apr 3, 2006
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
不好意思,在這方面又有些問題想請教您。
我使用了這樣的設定法,在瀏覽器中的確能成功防止盜連;但是我發現用 FlashGet 竟然可以下載該圖片。請問這是怎麼一回事呢?
由 小斌 發表於 7:07, Apr 2, 2006
218.170.4.* | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
有可能是FlashGet可以避開這項限制,但你必須瞭解,防盜連的目的並不是在防止「下載到電腦」這件事情,因為放在網路上本來就是要讓人瀏覽的,只要他瀏覽器看得到,就已經下載到他電腦裡了,同樣的道理,FlashGet也等於只是順便幫忙複製一份到電腦中的其他目錄。

那麼,防盜連的意義在哪裡?

它最大的用途是防止頻寬被濫用,防止你的圖片或其他檔案連結直接出現在其他的網站。至於如果他下載圖片後再上傳,使用的是他那邊的頻寬,不過對方同時會有盜用圖片的問題,你有權利可以主張要求刪除或標示出處的。
ivan 發表於 11:55, Apr 3, 2006
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
嗨~我怎麼設定之後......隸屬於那資料夾下的所有東西都不能被讀取= =+
網頁錯誤代碼500
chiung 發表於 16:51, Aug 17, 2006
203.73.88.* | kkyy00066 at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
請問你是放在哪個目錄下?

要注意的是你檔案設定時,是不是沒指定檔案類型,導致全部不能讀取?
ivan 發表於 2:54, Aug 19, 2006
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
我的設定就是放在圖片的資料夾...可是!!!我發現!!放進去之後...他會讓所有圖片不能讀取= =+
更嚴重的情況就是把這文件放網頁根目錄...然後!!!很帥的事情發生了...整個網頁都變500= =[代碼]
還有阿!!請問~~要如何設定BLOG才可以像下面的"訪客來源網址:"...我試過了referer...可是都不太能用的樣子....
chiung 發表於 12:51, Aug 20, 2006
203.73.88.* | kkyy00066 at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
你把你的設定貼上來看看,比較好判斷。

一般的blog網站比較少做這類的referer功能,這裡算是特別的吧,好處是能夠知道每篇文章的訪客連結,但會耗費一些資料庫空間來存。
ivan 發表於 14:22, Aug 20, 2006
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
我的設定都從你這邊改的...從你舊的到新的...都試過XD
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://kkyy00066.no-ip.org/bo-blog/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://kkyy00066.no-ip.org/bo-blog$ [NC]
RewriteCond %{HTTP_REFERER} !^http://kkyy00066.no-ip.org/bo-blog/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://kkyy00066.no-ip.org/bo-blog$ [NC]
RewriteRule .*\.(jpg|gif|png|bmp|rar|zip|exe)$ /content/no_hotlink.jpeg [R,NC]
大致上~都試照改...可是伺服器都跑出500= =+而且不管設置什麼喔!!除了CGI-BIN裡面的這個設定不會以外其他都會"Options -Indexes"...

存放我BLOG裡面的照片資料夾在../attachment這裡..
我也試過國外的http://www.htaccesstools.com/hotlink-protection/
可是都沒用....真的在不能....就請你教我那個REFERER好了~~~喝喝[難過到開心短短一秒..]
chiung 發表於 12:10, Aug 21, 2006
61.59.179.* | kkyy00066 at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
阿阿阿阿阿阿阿......小弟太笨..............以為系統要我一直輸入驗證碼看不到有PO出來...就給他輸入了幾次.....結果= =+....變洗版....抱歉阿阿阿阿阿阿阿!!!!!!幫我砍掉吧....我不是故意的><抱歉
chiung 發表於 12:13, Aug 21, 2006
61.59.179.* | kkyy00066 at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
剛剛我看了也產生500的錯誤,上面叫我們管理員要看看error log。
所以就看看error log檔
結果根rewrite的模組有關。

所以上面完全正確,只是要到httpd.conf開啟rewrite的模組。
hollowaysxp 發表於 19:10, 五月 17, 2007
220.132.143.* | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
恭喜你,Apache設定好就很不錯了,rewrite的模組要記得開啟,也祝你的網站順利。
ivan 發表於 22:47, 五月 22, 2007
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
請問真實IP要設定.htaccess防盜連
要如何編寫
如上連網址
因為設定完之後連自己網站也連結不到
謝謝
jojoccow 發表於 0:59, Mar 11, 2009
210.240.137.* | jojoccow at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
如果是真實IP,要加上Allow from ip位置才行
ivan 發表於 11:26, Mar 20, 2009
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
請問這種設定方式和 http://bojack.pixnet.net/blog/post/3668493

有什麼差別?

由 愛蜜莉 發表於 21:16, Jun 2, 2009
202.172.28.* | emily1988 at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
大致上得到的效果是差不多的

但本文用的方法是只限定自己網域的主機來源才能顯示圖片
避免盜連
ivan 發表於 9:52, Jun 14, 2009
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
[F]:顯示錯誤訊息為為文字
[R,NC]:顯示錯誤訊息為圖片

那麼單純 [NC] 是什麼含意呢???
那麼單純 [R] 是什麼含意呢???

[F,NC]又是什麼意思呢?

如果不要單純文字也不要單純圖片,而是要顯示自製網頁(包含圖片),那是要用哪一個語法呢?

(目前設定之後,有一個大問題,希望可以幫忙,因為我是了好多天,找不到答案)

RewriteCond %{HTTP_REFERER} !^http://mydomain.com/.*$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]

當真的沒有那個檔案時,錯誤網頁很正常的顯示(包含文字和圖片)
ex.
http://mydomain.com/girl.gif (403)(沒有該檔案為什麼不是顯示404)
http://mydomain.com/kk(404)
http://mydomain.com/kk.kk(404)

但是當加了斜線/,就會網頁不正常了(只有文字沒有圖片)
http://mydomain.com/kk/(404)

請問怎麼修正?

還有以上我是還有在.htaccess中加入

ewriteEngine On
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html

如果我沒加入,用cp後台的Error pages生成網頁,那就更奇怪了,連http://mydomain.com/boy.gif(真的有該圖檔在空間內),都會網頁顯示不正常(只有文字沒有圖片)

拜託請幫幫我,真的找不出原因來。

謝謝XD
由 筱原涼子 發表於 21:46, Jun 2, 2009
202.172.28.* | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
[F] [R,NC]這些只是指定規則的定義名稱而已

「還有以上我是還有在.htaccess中加入

RewriteEngine On
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html」

這邊你要寫成RewriteEngine On 少一個R

ivan 發表於 9:56, Jun 14, 2009
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
原來可以用.htaccess來防盜連
蠻受用的
謝謝分享
由 Benson 發表於 23:24, Apr 26, 2010
124.11.149.* | wang dot cp at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字

張貼迴響:
名稱
電子郵件
網址



請輸入你在圖片中看到的文字
引用列表
本篇文章引用網址: http://yblog.org/api/trackback/?id=6055
沒有引用










Collablog Portal enabled