htaccess高级应用:防盗链阻止迅雷下载以及限制访问
2014-12-18 17:09
495 查看
导读: 合理利用htaccess文件,即使没有服务器的管理权限可以解决很多问题:比如用htaccess防盗链,阻止迅雷下载,限制用户访问指定类型的文件.判断User-agent阻止迅雷下载.
Rewrite的功能很强大, 合理的利用htaccess文件的设置 即使没有服务器的管理权限可以解决很多问题:
如果你不想伤害用户的感情,就需要显示一些别的东西,通过htaccess来实现:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !^(.+).css$
RewriteCond %{REQUEST_FILENAME} !^(.+).js$
RewriteCond %{REQUEST_FILENAME} !special.zip$
RewriteRule ^(.+)$ /chat/ [NC]
该规则将仅允许用户请求.css, .js类型的文件,还有special.zip文件。
RewriteRule 后面指定了限制规则:映射到/char/目录下处理。
RewriteCond 后面的“感叹号”(!)起到了“否定”作用,它表明,对不满足后面正则表达式者应用RewriteRule规则,也就是对当前类型的文件将不应用规则。
RewriteCond 之间是以逻辑“与”连接的,也就是只有当三个条件都不满足时才执行RewriteRule。
该规则也会限制访问.htm, .jpg等格式。
该规则不可以放在虚拟站点根目录(/)下,否则会死循环。
如果是二级目录,如/test/,那么传入RewriteCond的参数是以/test/开始的,因此从(.+)获得的文件名也含有/test/,读者必须对此多加小心。
要想仅获得文件名,可以将(.+)替换成([^/]+),并且去掉符号^,如下所示:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !([^/]+).css$
RewriteCond %{REQUEST_FILENAME} !([^/]+).js$
RewriteRule ^(.+)$ /chat/ [NC]
如果你的服务器提供某些资源的下载,那么你就必须多加小心诸如“迅雷”等下载软件,因为它们可能把你网站资源吸干,并且影响你的正常访客访问。为此,我们可以利用Rewrite限制某些UA的访问:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} 2.0.50727 [NC]
RewriteRule . abuse.txt [L]
该规则限制“迅雷”客户端下载资源,并将下载文件重置到abuse.txt
HTTP_USER_AGENT是Apache的内置变量
2.0.50727是迅雷User-agent的特征字符串
RewriteRule后面的“点”表示“任意URI”,也就是不管请求的是什么,都输出abuse.txt
通常,我们不会仅限制一个UA。利用[OR]即可实现对多个UA作出统一处理:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} 2.0.50727 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [NC,OR]
# etc..
RewriteCond %{HTTP_USER_AGENT} ^Net Vampire [NC]
RewriteRule . abuse.txt [L]
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?nowamagic.net/ [NC]
RewriteCond %{REQUEST_URI} !hotlink.png [NC]
RewriteRule .*.(gif|jpg|png)$ /hotlink.png [NC]
简单解释一下该规则的功能:
除本站以外其他网站都不得引用本站图片,具体可以理解为:
如果引用站点为“空”或者是“本站”,或者,所引用对象是“hotlink.png”,那么就允许访问。
再次提醒,RewriteCond之间默认的逻辑连接词是逻辑“与”。
这里的难点是理解逻辑转换,即德·摩根定律。
来源:转载
原作者:现代魔法学院 - http://www.nowamagic.net/academy/detail/1225940
版权声明:欢迎转载,但请以连接方式备注出处、作者。
本文链接地址:http://www.lao8.org/article_1445/htaccess_zuzhixunleixiazai
Rewrite的功能很强大, 合理的利用htaccess文件的设置 即使没有服务器的管理权限可以解决很多问题:
1. 用htaccess限制只能访问某种类型文件控制
httpd.conf 配置文件中可以用 Order、Files 及 FilesMatch 命令来阻止用户查看某种类型的文件,但是当用户被拒绝时,他们看到的是“403 Forbidden”. 方法请参考文章:禁止上传目录运行php的方法如果你不想伤害用户的感情,就需要显示一些别的东西,通过htaccess来实现:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !^(.+).css$
RewriteCond %{REQUEST_FILENAME} !^(.+).js$
RewriteCond %{REQUEST_FILENAME} !special.zip$
RewriteRule ^(.+)$ /chat/ [NC]
该规则将仅允许用户请求.css, .js类型的文件,还有special.zip文件。
RewriteRule 后面指定了限制规则:映射到/char/目录下处理。
RewriteCond 后面的“感叹号”(!)起到了“否定”作用,它表明,对不满足后面正则表达式者应用RewriteRule规则,也就是对当前类型的文件将不应用规则。
RewriteCond 之间是以逻辑“与”连接的,也就是只有当三个条件都不满足时才执行RewriteRule。
该规则也会限制访问.htm, .jpg等格式。
该规则不可以放在虚拟站点根目录(/)下,否则会死循环。
如果是二级目录,如/test/,那么传入RewriteCond的参数是以/test/开始的,因此从(.+)获得的文件名也含有/test/,读者必须对此多加小心。
要想仅获得文件名,可以将(.+)替换成([^/]+),并且去掉符号^,如下所示:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !([^/]+).css$
RewriteCond %{REQUEST_FILENAME} !([^/]+).js$
RewriteRule ^(.+)$ /chat/ [NC]
2. 用 .htaccess 判断User-agent 阻止迅雷下载
什么是User-agent?User-agent是所有HTTP客户端都得向服务器“自报家门”,以便服务器对不同的客户端作出不同响应。比如,某站点可能需要对浏览器、搜索引擎crawl还有各类下载工具作出不同的响应。服务器就是通过所谓的User-agent进行区分的。如果你的服务器提供某些资源的下载,那么你就必须多加小心诸如“迅雷”等下载软件,因为它们可能把你网站资源吸干,并且影响你的正常访客访问。为此,我们可以利用Rewrite限制某些UA的访问:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} 2.0.50727 [NC]
RewriteRule . abuse.txt [L]
该规则限制“迅雷”客户端下载资源,并将下载文件重置到abuse.txt
HTTP_USER_AGENT是Apache的内置变量
2.0.50727是迅雷User-agent的特征字符串
RewriteRule后面的“点”表示“任意URI”,也就是不管请求的是什么,都输出abuse.txt
通常,我们不会仅限制一个UA。利用[OR]即可实现对多个UA作出统一处理:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} 2.0.50727 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [NC,OR]
# etc..
RewriteCond %{HTTP_USER_AGENT} ^Net Vampire [NC]
RewriteRule . abuse.txt [L]
3. 用.htaccess防盗链(hot-linking)
盗链图片是非常可耻的 .htaccess的Rewrite可以非常简单有效的防盗链:RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?nowamagic.net/ [NC]
RewriteCond %{REQUEST_URI} !hotlink.png [NC]
RewriteRule .*.(gif|jpg|png)$ /hotlink.png [NC]
简单解释一下该规则的功能:
除本站以外其他网站都不得引用本站图片,具体可以理解为:
如果引用站点为“空”或者是“本站”,或者,所引用对象是“hotlink.png”,那么就允许访问。
再次提醒,RewriteCond之间默认的逻辑连接词是逻辑“与”。
这里的难点是理解逻辑转换,即德·摩根定律。
来源:转载
原作者:现代魔法学院 - http://www.nowamagic.net/academy/detail/1225940
版权声明:欢迎转载,但请以连接方式备注出处、作者。
本文链接地址:http://www.lao8.org/article_1445/htaccess_zuzhixunleixiazai
相关文章推荐
- nginx限制ip并发数和访问频率以及下载速度
- Windows防火墙限制端口/IP/应用访问的方法以及例外的配置
- Revit二次开发高级专题讲座:访问Revit模型中的几何数据以及对象间关系判断方法(点击下载)
- apache .htaccess 伪静态重定向,防盗链 限制下载...
- 【javascript】最简洁的TreeView、“蛮力跨域”、Jsonp协议、局部运算以及仿客户端的Web视频应用例子(含下载)
- 超级简单:在asp.net中限制下载文件的访问权限
- Nano-x的相关源码以及应用示例下载.
- Response.WriteFile的应用 以及 文件的下载
- Asp高级组件 下载地址以及官方网站
- 收发一体超声波测距与多普勒应用以及实用电路图下载
- 如何拿回被恶意或者不小心删除硬盘所有者权限而导致的文件访问以及修改权限被限制(NTFS格式安全权限问题)
- postfix限制特定用户收发邮件的高级访问控制方法
- 代理访问列表 之限制MP3和MPG下载、限制FTP连接、限制发帖
- Oracle限制客户访问Sun服务器固件下载
- 利用IP扩展访问列表实现应用服务的访问限制
- 网站优化研究之图像资源网站优化矢量图形下载站优化 之 图形防盗链 以及 缓存图像数据,节省硬盘IO
- 用web.xml控制Web应用的行为( 限制对Web资源的访问)
- jQuery.API源码深入剖析以及应用实现(2) - jQuery对象访问和数据缓存
- 【Silverlight】Bing Maps开发应用与技巧四:自定义MapMode实现地图访问限制