用戶經常面對的一個問題就是服務器的流量問題,而站點文件被盜鏈是其中最為主要的部分。所謂盜鏈,是指其他網站直接鏈接我們網站上的文件,一般來說,盜鏈的對象大多為很耗帶寬的大體積文件,如圖片、視頻等。這樣造成的後果主要有:增加了服務器的流量負擔,影響我們網站的訪問速度。
如果你用的是Apache服務器,那麼使用.htaccess文件就可以很方便的進行設置,從而防止其他站點的用戶盜鏈我們站點的文件。
使用.htaccess禁止盜鏈
通過.htaccess來防止網站的圖片、壓縮文件、或視頻等非Html文件被盜鏈的方法相當簡單,通過在該文件中加入幾句命令即可保護我們寶貴的帶寬。例如本站的設置如下:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !sudu.cn [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !Google.cn [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteRule .*\.(gif|jpg)$ http://sudu.cn/no.png [R,NC,L]
簡單的解釋一下上述語句:
1、RewriteCond %{HTTP_REFERER} !^$ [NC]
允許空“HTTP_REFERER”的訪問,即允許用戶在浏覽器地址欄中直接輸入圖片地址時圖片文件的顯示。一般而言,這是可選的,不過,建議這麼設置,如果強迫必須具有“HTTP_REFERER”才能訪問,可能會帶來某些問題,比如說在用戶通過代理服務器訪問時。
2、RewriteCond %{HTTP_REFERER} !45it.net [NC]
設置允許訪問的HTTP來源,包括我們的站點自身、Google、Baidu、Bloglines、Feedburner等。
3、RewriteRule .*\.(gif|jpg|png)$ http://45it.net/no.png [R,NC,L]
定義被盜鏈時替代的圖片,讓所有盜鏈 jpg、gif、png 等文件的網頁,顯示根目錄下的 no.png 文件。注意:替換顯示的圖片不要放在設置防盜鏈的目錄中,並且該圖片文件體積越小越好。當然你也可以不設置替換圖片,而是使用下面的語句即可:
RewriteRule .*\.(gif|jpg|png)$ – [F]
4、說明一下其中的R、NC 和 L
R 就是轉向的意思
NC 指的是不區分大小寫
L 的作用是指明本次轉向到此結束,後續的轉向不受先前判斷語句的影響
5、防止盜鏈的文件類型
上例中是 gif、jpg、png,而根據需要,可更改或添加其他文件類型,如rar、mov等,不同文件擴展名間使用“|”分割。
這樣的話,就可以基本做到簡單的防止被盜鏈情況的發生,而且可以盡最大可能的減少服務器流量的無畏消耗。