1、Apache中的.htaccess文件
.htaccess文件是Apache中相當(dāng)重要的配置文件,其格式為純文本,它提供了針對目錄改變配置的方法,通過在一個特定的文檔目錄中放置一個包含一個或多個指令的文件,以作用于此目錄及其所有子目錄。
通過.htaccess文件,可以實現(xiàn)簡單地很多在IIS中很繁瑣甚至無法實現(xiàn)的功能,如密碼保護、禁止顯示目錄列表、阻止/允許特定的IP地址、實現(xiàn)網(wǎng)址的301 重定向等等。
正如上面所說,.htaccess文件將影響其所在的目錄及其子目錄,因此,如果我們要保護的內(nèi)容(此處以防止圖片盜鏈為例,即圖片)位于網(wǎng)站內(nèi)多個目錄下,可以考慮將其放在根目錄下;而如果圖片有單獨的子目錄如“/images/”,則只需將其放置在該目錄下(當(dāng)然也可以放到根目錄中)。
需要注意的是,如果通過FTP方式將創(chuàng)建好的.htaccess上傳到服務(wù)器上,傳輸模式應(yīng)為ASCII而非Binary。上傳到服務(wù)器后,應(yīng)將其屬性通過CHMOD修改為644 或“RW-R–R–”,這樣,可以保證服務(wù)器能夠使用同時無法通過瀏覽器修改,當(dāng)然,.htaccess的可讀屬性也存在一定的風(fēng)險:攻擊者可通過它找出您要保護的對象或認(rèn)證文件位置——解決辦法是將認(rèn)證文件.htpasswd放到網(wǎng)站根目錄之外,這樣,便無法通過網(wǎng)絡(luò)找到它了。
2、使用.htaccess禁止盜鏈
通過.htaccess來防止網(wǎng)站的圖片、壓縮文件、或視頻等非Html文件被盜鏈的方法相當(dāng)簡單,通過在該文件中加入幾句命令即可保護我們寶貴的帶寬。例如本站的設(shè)置如下:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !wentong.org [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteRule .*/.(gif|jpg)$ http://wentong.org/welcome.jpg [R,NC,L]
演示地址:
http://ituku.sinaapp.com/welcome.html
3、上述語句的簡單解釋
1、RewriteCond %{HTTP_REFERER} !^$ [NC]
允許空“HTTP_REFERER”的訪問,即允許用戶在瀏覽器地址欄中直接輸入圖片地址時圖片文件的顯示。一般而言,這是可選的,不過,建議這么設(shè)置,如果強迫必須具有“HTTP_REFERER”才能訪問,可能會帶來某些問題,比如說在用戶通過代理服務(wù)器訪問時。
2、RewriteCond %{HTTP_REFERER} !wentong.org [NC]
設(shè)置允許訪問的HTTP來源,包括我們的站點自身、Google、Baidu、Bloglines、Feedburner等。
3、RewriteRule .*/.(gif|jpg|png)$ http://wentong.org/welcome.jpg [R,NC,L]
定義被盜鏈時替代的圖片,讓所有盜鏈 jpg、gif、png 等文件的網(wǎng)頁,顯示根目錄下的 no.png 文件。注意:替換顯示的圖片不要放在設(shè)置防盜鏈的目錄中,并且該圖片文件體積越小越好。當(dāng)然你也可以不設(shè)置替換圖片,而是使用下面的語句即可:
RewriteRule .*/.(gif|jpg|png)$ - [F]
4、說明一下其中的R、NC 和 L
R 就是轉(zhuǎn)向的意思
NC 指的是不區(qū)分大小寫
L 的作用是指明本次轉(zhuǎn)向到此結(jié)束,后續(xù)的轉(zhuǎn)向不受先前判斷語句的影響
5、防止盜鏈的文件類型
上例中是 gif、jpg、png,而根據(jù)需要,可更改或添加其他文件類型,如rar、mov等,不同文件擴展名間使用“|”分割。
這樣的話,就可以基本做到簡單的防止被盜鏈情況的發(fā)生,而且可以盡最大可能的減少服務(wù)器流量的無畏消耗,當(dāng)然了,如果你不在意這點流量的話,那么可以不用考慮上述設(shè)置啦!
新聞熱點
疑難解答