修改.htaccess文件禁止图片盗链、禁止资源盗链
2011-02-20 10:29
281 查看
图片等资源被盗链后,会极大的浪费我们的流量,即使虚拟主机不限制流量,也会浪费我们的带宽。今天,在网上偶尔看到了一篇防止盗链的文章,实践了一下,果然有效果,现将我的实践过程分享一下,仅供参考。
1.Apache中的.htaccess文件
.htaccess文件,也叫“分布式配置文件”,是Apache中相当重要的配置文件,格式为纯文本,提供了针对目录改变配置的方法,通过对一个特定的文档目录中放置一个该文件,以作用于该目录及其子目录。
通过.htaccess文件,可以实现简单的很多IIS中很繁琐甚至无法实现的功能,如密码保护、禁止列目录、阻止或允许特定的IP地址、实现网址301重定向等。
为了保护我们的图片等资源不被盗链,我们要将该文件放到所有要保护资源的上级根目录或每个目录都放置一个该文件。对于Wordpress而言,可以直接放在 wp-contents/uploads 目录下。
该文件属性应设置为644或“RW-R–R–”
2. 在.htaccess中添加防止盗链的相应指令
一般情况下,设置成这样
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www/.)?ucooper.com(/)?.*$ [NC]
RewriteRule .*/.(gif|jpg|jpeg|bmp|png)$ – [F]
</IfModule>
注意:
(1)在第四行把ucooper.com改为你的域名
(2)第五行为防止盗链的文件类型,根据需要,可以自行添加,用”|”分隔
(3)一般我们希望在别人盗链的位置提醒一下“请勿盗链”等字样,就可以把第五行改成这样,用我们的图片进行提醒。
RewriteRule .*/.(gif|jpg|jpeg|bmp|png)$ http://www.ucooper.com/alert.gif
[R,NC,L]
R 就是转向的意思
NC 指的是不区分大小写
L 的作用是指明本次转向到此结束,后续的转向不受先前判断语句的影响
(4)在Wordpress中,目录下可能已经存在该文件,我们可以借助于CPanel的文件管理器编辑下该文件,注意最好不要覆盖掉原有的命令,如我的就修改成下面这样。如果没有该文件,则可以从其它地方复制一个,拷贝到相应目录下。
wp-content/uploads目录下添加的 .htaccess文件内容
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www/.)?ucooper.com(/)?.*$ [NC]
RewriteRule .*/.(gif|jpg|png|zip|pdf|doc)$ http://www.ucooper.com/alert.gif
[R,NC,L]
</IfModule>
WordPress 根目录下的 .htaccess,不需要修改下面这个
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index/.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
(5)该网站可以提供一些自动生成该文件的功能,各位可以试一下。
http://www.wangqu.org/htaccess/#a_Pic
3. 测试一下吧
在其它博客里添加下我们站点中的图片测试下效果吧,我的显示效果如下:
4. 为了进一步节省流量,建议不要把图片放在自己网站上,可以放在flicker等图床上。
1.Apache中的.htaccess文件
.htaccess文件,也叫“分布式配置文件”,是Apache中相当重要的配置文件,格式为纯文本,提供了针对目录改变配置的方法,通过对一个特定的文档目录中放置一个该文件,以作用于该目录及其子目录。
通过.htaccess文件,可以实现简单的很多IIS中很繁琐甚至无法实现的功能,如密码保护、禁止列目录、阻止或允许特定的IP地址、实现网址301重定向等。
为了保护我们的图片等资源不被盗链,我们要将该文件放到所有要保护资源的上级根目录或每个目录都放置一个该文件。对于Wordpress而言,可以直接放在 wp-contents/uploads 目录下。
该文件属性应设置为644或“RW-R–R–”
2. 在.htaccess中添加防止盗链的相应指令
一般情况下,设置成这样
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www/.)?ucooper.com(/)?.*$ [NC]
RewriteRule .*/.(gif|jpg|jpeg|bmp|png)$ – [F]
</IfModule>
注意:
(1)在第四行把ucooper.com改为你的域名
(2)第五行为防止盗链的文件类型,根据需要,可以自行添加,用”|”分隔
(3)一般我们希望在别人盗链的位置提醒一下“请勿盗链”等字样,就可以把第五行改成这样,用我们的图片进行提醒。
RewriteRule .*/.(gif|jpg|jpeg|bmp|png)$ http://www.ucooper.com/alert.gif
[R,NC,L]
R 就是转向的意思
NC 指的是不区分大小写
L 的作用是指明本次转向到此结束,后续的转向不受先前判断语句的影响
(4)在Wordpress中,目录下可能已经存在该文件,我们可以借助于CPanel的文件管理器编辑下该文件,注意最好不要覆盖掉原有的命令,如我的就修改成下面这样。如果没有该文件,则可以从其它地方复制一个,拷贝到相应目录下。
wp-content/uploads目录下添加的 .htaccess文件内容
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www/.)?ucooper.com(/)?.*$ [NC]
RewriteRule .*/.(gif|jpg|png|zip|pdf|doc)$ http://www.ucooper.com/alert.gif
[R,NC,L]
</IfModule>
WordPress 根目录下的 .htaccess,不需要修改下面这个
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index/.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
(5)该网站可以提供一些自动生成该文件的功能,各位可以试一下。
http://www.wangqu.org/htaccess/#a_Pic
3. 测试一下吧
在其它博客里添加下我们站点中的图片测试下效果吧,我的显示效果如下:
4. 为了进一步节省流量,建议不要把图片放在自己网站上,可以放在flicker等图床上。
相关文章推荐
- CodeIgniter通过修改.htaccess文件的办法解决加载css js 图片类型文件的方法
- 关于CI框架通过修改.htaccess文件的办法解决无法加载资源文件的方法
- springMVC访问静态资源:为什么图片/js/css等文件写在jsp中是404不能获取
- android 获取资源文件 R.drawable中的图片转换为drawable、bitmap(转载)
- Spring MVC程序中得到静态资源文件css,js,图片 文件的路径
- C# DLL资源文件打包(图片、JS、CSS)[WebResource]
- 静态库资源文件、xib、图片打包处理,编译生成的静态库.a包文件太大缩小解决方法
- 如何修改PE文件的资源
- 利用apktool将APK反编译,生成程序的图片、XML配置、语言资源等文件
- 修改EXE文件图标及资源的方法
- 获取IPA包文件中的图片资源
- 逗图软件V1.0 可以直接复制 图片资源更多自由修改
- GDI+从资源文件中加载图片
- 怎么修改或删除我上传的资源文件啊!收藏
- [VB.NET]哪里可以找到用于VB.NET2005的菜单资源图片文件呢?在visio studio中有吗?
- apk反编译生成程序的源代码和图片、XML配置、语言资源等文件
- Spring MVC程序中得到静态资源文件css,js,图片
- ueditor上传图片时目录创建失败的问题解决方法,不用那么麻烦,其实修改php/config.json这个配置文件里面的路径就行!!
- 修改文件版本信息(PE文件版本信息、资源Version)
- 多文件(图片)上传-限制上传个数,修改上传