htaccess 防盜鏈,防止目錄瀏覽等10大技巧
更新時(shí)間:2012年02月16日 19:22:10 作者:
htaccess 防盜鏈,防止目錄瀏覽等10大技巧,使用apache服務(wù)器的朋友可以參考下
1. 反盜鏈
那些盜用了你的內(nèi)容,還不愿意自己存儲(chǔ)圖片的網(wǎng)站是無(wú)恥的。你可以通過(guò)以下配置來(lái)放置別人盜用你的圖片:
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?yoursite.com/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]
2. 防止目錄瀏覽
有時(shí)候目錄瀏覽是有用的,但大部分情況會(huì)有安全問(wèn)題。為了讓你的網(wǎng)站更安全,你可以通過(guò)htaccess文件來(lái)禁用這個(gè)功能:
Options All -Indexes
3. SEO友好的301永久重定向
這一招是我常用的。每次我更改網(wǎng)站URL結(jié)構(gòu)的時(shí)候,我都會(huì)做301重定向:
1 Redirect 301 http://www.yoursite.com/article.html http://www.yoursite.com/archives/article
4. 顯示個(gè)性化的 404 錯(cuò)誤頁(yè)面
當(dāng)用戶訪問(wèn)了一個(gè)不存在的頁(yè)面的時(shí)候,網(wǎng)頁(yè)服務(wù)器會(huì)顯示“404 file not found”錯(cuò)誤。有很多CMS可以讓你設(shè)置自定義的錯(cuò)誤頁(yè)面,但最簡(jiǎn)單的方法是更改htaccess:
ErrorDocument 404 /404.html
5. 設(shè)置目錄的默認(rèn)頁(yè)面
假如你需要為不同的目錄設(shè)置不同的默認(rèn)頁(yè)面,你可以很容易的通過(guò) .htaccess 實(shí)現(xiàn):
DirectoryIndex about.html
6. 基于referer來(lái)限制網(wǎng)站訪問(wèn)
站長(zhǎng)通常不會(huì)限制網(wǎng)站訪問(wèn),但是當(dāng)你發(fā)現(xiàn)有一些網(wǎng)站盡給你帶來(lái)垃圾流量的話,你就應(yīng)該屏蔽他們:
<IfModule mod_rewrite.c>
RewriteEngine on RewriteCond %{HTTP_REFERER} spamteam.com [NC,OR]
RewriteCond %{HTTP_REFERER} trollteam.com [NC,OR]
RewriteRule .* – [F]
</ifModule>
7. 限制PHP上傳文件大小
這招在共享空間的服務(wù)器上很有用,可以讓我的用戶上傳更大的文件。第一個(gè)是設(shè)置最大的上傳文件大小,第二個(gè)是設(shè)置最大的POST請(qǐng)求大小,第三個(gè)PHP腳本最長(zhǎng)的執(zhí)行時(shí)間,最后一個(gè)是腳本解析上傳文件的最長(zhǎng)時(shí)間:
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200
8. 壓縮文件
你可以通過(guò)壓縮文件來(lái)減少網(wǎng)絡(luò)流量,也頁(yè)面裝載時(shí)間:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
9. 緩存文件
這一點(diǎn)還需要解釋嗎?
<FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$”>
Header set Cache-Control “max-age=2592000″
</FilesMatch>
10. 添加尾部的反斜杠
我并不確定,但是很多文章,很多人都說(shuō)添加尾部反斜杠有益于SEO:
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
</IfModule>
使用.Htaccess來(lái)防圖片盜鏈
先解釋一下圖片防盜鏈和轉(zhuǎn)向:
圖片防盜鏈有什么用?
防止其它網(wǎng)站盜用你的圖片,浪費(fèi)你寶貴的流量。
圖片轉(zhuǎn)向有什么用?
如果你的網(wǎng)站以圖片為主,哪天發(fā)現(xiàn)月底沒(méi)到流量就快用光了,那就可以利用圖片轉(zhuǎn)向,在不修改網(wǎng)頁(yè)的前提下,把圖片下載請(qǐng)求轉(zhuǎn)向到其它空間(比如試用主機(jī)),臨時(shí)過(guò)渡。
下面開(kāi)始講解,比如你的圖片都在img目錄下,那就在該目錄下放一個(gè)名為 .htaccess 的文件,內(nèi)容如下:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !jb51.net [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]
RewriteRule ^(.*)$ http:\/\/image.jb51.net\/image\/$1 [L]
大概解釋下:
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !jb51.net [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
這部分是判斷是否盜鏈,如果以上條件都成立(即訪問(wèn)圖片的請(qǐng)求,既不是直接輸入網(wǎng)址,也不是來(lái)自jb51.net,也不是來(lái)自zhuaxia.com,也不是來(lái)自google.com,也不是來(lái)自baidu.com,也不是來(lái)自bloglines.com 的話),就執(zhí)行下列轉(zhuǎn)向:
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]
意思是讓所有盜鏈 img 目錄下 jpg、gif、png、bmp、swf、jpeg 文件的網(wǎng)頁(yè),顯示的圖片都用 image 目錄下的 replace.gif 圖片替換掉。注意替換顯示的圖片不要放在設(shè)置防盜鏈的 img 目錄下。如果照上面的規(guī)則判斷出圖片請(qǐng)求不是盜鏈的,就執(zhí)行以下轉(zhuǎn)向:
RewriteRule ^(.*)$ http:\/\/image.jb51.net\/image\/$1 [L]
意思是對(duì) img 目錄下所有的請(qǐng)求都轉(zhuǎn)向到目標(biāo)服務(wù)器,比如有個(gè)圖片原來(lái)的 url 是 去。當(dāng)然了你得先把原服務(wù)器 img 目錄下的文件統(tǒng)統(tǒng)拷貝到臨時(shí)服務(wù)器的 image 目錄下,轉(zhuǎn)向才會(huì)真正可用。起到的效果就是把原服務(wù)器圖片下載所占用的流量統(tǒng)統(tǒng)省下,讓臨時(shí)服務(wù)器來(lái)承受了.
那些盜用了你的內(nèi)容,還不愿意自己存儲(chǔ)圖片的網(wǎng)站是無(wú)恥的。你可以通過(guò)以下配置來(lái)放置別人盜用你的圖片:
復(fù)制代碼 代碼如下:
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?yoursite.com/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]
2. 防止目錄瀏覽
有時(shí)候目錄瀏覽是有用的,但大部分情況會(huì)有安全問(wèn)題。為了讓你的網(wǎng)站更安全,你可以通過(guò)htaccess文件來(lái)禁用這個(gè)功能:
復(fù)制代碼 代碼如下:
Options All -Indexes
3. SEO友好的301永久重定向
這一招是我常用的。每次我更改網(wǎng)站URL結(jié)構(gòu)的時(shí)候,我都會(huì)做301重定向:
復(fù)制代碼 代碼如下:
1 Redirect 301 http://www.yoursite.com/article.html http://www.yoursite.com/archives/article
4. 顯示個(gè)性化的 404 錯(cuò)誤頁(yè)面
當(dāng)用戶訪問(wèn)了一個(gè)不存在的頁(yè)面的時(shí)候,網(wǎng)頁(yè)服務(wù)器會(huì)顯示“404 file not found”錯(cuò)誤。有很多CMS可以讓你設(shè)置自定義的錯(cuò)誤頁(yè)面,但最簡(jiǎn)單的方法是更改htaccess:
復(fù)制代碼 代碼如下:
ErrorDocument 404 /404.html
5. 設(shè)置目錄的默認(rèn)頁(yè)面
假如你需要為不同的目錄設(shè)置不同的默認(rèn)頁(yè)面,你可以很容易的通過(guò) .htaccess 實(shí)現(xiàn):
復(fù)制代碼 代碼如下:
DirectoryIndex about.html
6. 基于referer來(lái)限制網(wǎng)站訪問(wèn)
站長(zhǎng)通常不會(huì)限制網(wǎng)站訪問(wèn),但是當(dāng)你發(fā)現(xiàn)有一些網(wǎng)站盡給你帶來(lái)垃圾流量的話,你就應(yīng)該屏蔽他們:
復(fù)制代碼 代碼如下:
<IfModule mod_rewrite.c>
RewriteEngine on RewriteCond %{HTTP_REFERER} spamteam.com [NC,OR]
RewriteCond %{HTTP_REFERER} trollteam.com [NC,OR]
RewriteRule .* – [F]
</ifModule>
7. 限制PHP上傳文件大小
這招在共享空間的服務(wù)器上很有用,可以讓我的用戶上傳更大的文件。第一個(gè)是設(shè)置最大的上傳文件大小,第二個(gè)是設(shè)置最大的POST請(qǐng)求大小,第三個(gè)PHP腳本最長(zhǎng)的執(zhí)行時(shí)間,最后一個(gè)是腳本解析上傳文件的最長(zhǎng)時(shí)間:
復(fù)制代碼 代碼如下:
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200
8. 壓縮文件
你可以通過(guò)壓縮文件來(lái)減少網(wǎng)絡(luò)流量,也頁(yè)面裝載時(shí)間:
復(fù)制代碼 代碼如下:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
9. 緩存文件
這一點(diǎn)還需要解釋嗎?
復(fù)制代碼 代碼如下:
<FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$”>
Header set Cache-Control “max-age=2592000″
</FilesMatch>
10. 添加尾部的反斜杠
我并不確定,但是很多文章,很多人都說(shuō)添加尾部反斜杠有益于SEO:
復(fù)制代碼 代碼如下:
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
</IfModule>
使用.Htaccess來(lái)防圖片盜鏈
先解釋一下圖片防盜鏈和轉(zhuǎn)向:
圖片防盜鏈有什么用?
防止其它網(wǎng)站盜用你的圖片,浪費(fèi)你寶貴的流量。
圖片轉(zhuǎn)向有什么用?
如果你的網(wǎng)站以圖片為主,哪天發(fā)現(xiàn)月底沒(méi)到流量就快用光了,那就可以利用圖片轉(zhuǎn)向,在不修改網(wǎng)頁(yè)的前提下,把圖片下載請(qǐng)求轉(zhuǎn)向到其它空間(比如試用主機(jī)),臨時(shí)過(guò)渡。
下面開(kāi)始講解,比如你的圖片都在img目錄下,那就在該目錄下放一個(gè)名為 .htaccess 的文件,內(nèi)容如下:
復(fù)制代碼 代碼如下:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !jb51.net [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]
RewriteRule ^(.*)$ http:\/\/image.jb51.net\/image\/$1 [L]
大概解釋下:
復(fù)制代碼 代碼如下:
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !jb51.net [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
這部分是判斷是否盜鏈,如果以上條件都成立(即訪問(wèn)圖片的請(qǐng)求,既不是直接輸入網(wǎng)址,也不是來(lái)自jb51.net,也不是來(lái)自zhuaxia.com,也不是來(lái)自google.com,也不是來(lái)自baidu.com,也不是來(lái)自bloglines.com 的話),就執(zhí)行下列轉(zhuǎn)向:
復(fù)制代碼 代碼如下:
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]
意思是讓所有盜鏈 img 目錄下 jpg、gif、png、bmp、swf、jpeg 文件的網(wǎng)頁(yè),顯示的圖片都用 image 目錄下的 replace.gif 圖片替換掉。注意替換顯示的圖片不要放在設(shè)置防盜鏈的 img 目錄下。如果照上面的規(guī)則判斷出圖片請(qǐng)求不是盜鏈的,就執(zhí)行以下轉(zhuǎn)向:
復(fù)制代碼 代碼如下:
RewriteRule ^(.*)$ http:\/\/image.jb51.net\/image\/$1 [L]
意思是對(duì) img 目錄下所有的請(qǐng)求都轉(zhuǎn)向到目標(biāo)服務(wù)器,比如有個(gè)圖片原來(lái)的 url 是 去。當(dāng)然了你得先把原服務(wù)器 img 目錄下的文件統(tǒng)統(tǒng)拷貝到臨時(shí)服務(wù)器的 image 目錄下,轉(zhuǎn)向才會(huì)真正可用。起到的效果就是把原服務(wù)器圖片下載所占用的流量統(tǒng)統(tǒng)省下,讓臨時(shí)服務(wù)器來(lái)承受了.
相關(guān)文章
0到1分析美團(tuán)端側(cè)cdn容災(zāi)解決方案
作為業(yè)務(wù)研發(fā),你是否遇到過(guò)因?yàn)?CDN?問(wèn)題導(dǎo)致的業(yè)務(wù)圖片加載失敗,頁(yè)面打開(kāi)緩慢,頁(yè)面布局錯(cuò)亂或者頁(yè)面白屏?你是否又遇到過(guò)某些區(qū)域?CDN?域名異常導(dǎo)致業(yè)務(wù)停擺,客訴不斷,此時(shí)的你一臉茫然,不知所措,這篇文章為大家從0到1分析美團(tuán)端側(cè)cdn容災(zāi)解決方案2022-01-01使用華為云鯤鵬彈性云服務(wù)器部署Discuz的詳細(xì)過(guò)程
這篇文章主要介紹了使用華為云鯤鵬彈性云服務(wù)器部署Discuz,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05Windows10 1903錯(cuò)誤0xc0000135解決方案【推薦】
windows10 1903是2019年Mircosoft推出的最新版windows操作系統(tǒng),但是有很多機(jī)器裝上之后會(huì)存在不支持.net framework的現(xiàn)象,因此在這里,筆者為大家?guī)?lái)了解決該問(wèn)題簡(jiǎn)單好用的方案,需要的朋友可以參考下2019-10-10DELL服務(wù)器 Dell PowerEdge服務(wù)器RAID卡驅(qū)動(dòng)大全
這篇文章主要介紹了DELL服務(wù)器 Dell PowerEdge服務(wù)器RAID卡驅(qū)動(dòng),因?yàn)楣俜降暮芏嘞到y(tǒng)都不帶陣列卡驅(qū)動(dòng),需要安裝驅(qū)動(dòng)才可以,一般情況下2003用集成raid驅(qū)動(dòng)的系統(tǒng)才可以安裝或者按F6加載驅(qū)動(dòng)2016-04-04云服務(wù)器Centos中安裝Docker的方法小結(jié)
Docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,利用操作系統(tǒng)本身已有的機(jī)制和特性,可以實(shí)現(xiàn)遠(yuǎn)超傳統(tǒng)虛擬機(jī)的輕量級(jí)虛擬化,CentOS是Linux發(fā)行版之一,本文給大家介紹云服務(wù)器Centos中安裝Docker的方法,感興趣的朋友一起看看吧2023-12-12