Apache - 模块 - mod_rewrite - RewriteCond - 通过检查HTTP_REFERER避免静态图片盗链对性能有严重影响

Apache - 模块 - mod_rewrite - RewriteCond - 通过检查HTTP_REFERER避免静态图片盗链对性能有严重影响

在避免静态图片盗链时,可以用RewriteCond检查referer,如果不是来自于特定的网站或搜索引擎,则转向另一个页面。在使用这些 RewriteCond和不使用之间作比较,每条RewriteCond将降低速度1%以上,随着这个列表的增长,对于速度的影响将进一步突出。因此使用 大量RewriteCond来保护静态内容的方案,虽然能减和网络流量,但是也会消耗服务器性能。在具体使用过程中一定要平衡各方面条件。

[例1]

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !suixie.com[NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteRule .* new.html [L]
RewriteRule .* old.html [L]

[例2]

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://newsight.net/.*$  [NC]
RewriteCond %{HTTP_REFERER} !^http://nsncity.net/.*$   [NC]
RewriteCond %{HTTP_REFERER} !^[url=http://]http://[/url](www.)?newsight.net/.*$   [NC]
RewriteCond %{HTTP_REFERER} !^[url=http://]http://[/url](www1.)?newsight.net/.*$  [NC]
RewriteCond %{HTTP_REFERER} !^[url=http://]http://[/url](www.)?nsncity.net/.*$    [NC]
RewriteCond %{HTTP_REFERER} !^[url=http://]http://[/url](gallery.)?newsight.net/.*$       [NC]
RewriteCond %{HTTP_REFERER} !^[url=http://]http://[/url](club.)?newsight.net/.*$  [NC]
RewriteCond %{HTTP_REFERER} !^[url=http://]http://[/url](club.)?nsncity.net/.*$   [NC]
RewriteCond %{HTTP_REFERER} !^[url=http://]http://[/url](exec.)?newsight.net/.*$  [NC]
RewriteRule .(gif|GIF|jpg|JPG|png|PNG|swf|SWF|pdf|PDF|js|JS|css|CSS)$ http://www.newsight.net/images/logo.gif  [R,L]
类似的,检查HTTP_USER_AGENT来防止网络爬虫也需要谨慎。
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot/ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download/ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express/ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image/ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image/ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy/ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet/ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC/ Web/ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass/ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown/ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister/ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net/ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline/ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline/ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa/ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport/ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web/ Image/ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web/ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo/ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website/ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website/ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon/ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule ^.* - [F,L]

[Apache - 关键词]

apache

[Apache - 常用模块]

mod_alias
mod_rewrite

[mod_rewrite模块 - 关键词]

httxt2dbm
mod_rewrite
ornext
RewriteBase
RewriteCond
RewriteEngine
RewriteLog
RewriteLogLevel
RewriteMap
RewriteRule

[mod_rewrite模块 - 常见用途]

改变查询参数的设定位置

[mod_rewrite模块 - 标记]

RewriteLog, 设置重写引擎日志的文件名

[mod_rewrite模块 - RewriteCond重写条件]

通过检查HTTP_REFERER避免静态图片盗链对性能有严重影响

[mod_rewrite模块 - RewriteRule重写规则]

匹配任意字符串时,可以借助正则表达式的灵活特性

[mod_rewrite模块 - 常见问题]

RewriteRule中的正则表达式需要考虑是否要加上^(匹配字符串开头)

RewriteRule中的正则表达式需要考虑是否要对.转义(匹配任意字符还是仅匹配.字符)

RewriteRule中的R标记用于发送重定向

与PHP集成时不需要对$_GET额外处理

[mod_alias模块 - 常见问题]

RedirectMatch用于简单的重定向
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值