- 注册时间
- 2008-5-19
- 最后登录
- 2012-2-3
- 在线时间
- 1757 小时
- 阅读权限
- 200
- 积分
- 12741
- 帖子
- 2521
- 主题
- 1198
- 精华
- 24
- UID
- 1
  
 - 注册时间
- 2008-5-19
- 最后登录
- 2012-2-3
- 在线时间
- 1757 小时
- 阅读权限
- 200
- 积分
- 12741
- 帖子
- 2521
- 主题
- 1198
- 精华
- 24
- UID
- 1
|
发表于 2008-7-24 10:54:40
|显示全部楼层
Apache prevent hot linking or leeching of images using mod_rewrite howto
Q. My site hosts lots of good images and other site hot links to my images from their own site. Hot linking is eating lots of my bandwidth. How do I stop lechers or prevent hotlinking under Apache web server?
A. This is problem you may encounter, particularly if your site hosts unique images. However solution is quite simple ban image hot linking using Apache mod_rewrite to check the referral information the browser provides.
How do I prevent Apache hot linking of images / media?
There are many ways to block hot linking of images.
You can add any one of the following code to .htaccess file or to your own httpd.conf file to prevent.
Make sure Apache mod_rewrite is enabled.
Solution # 1 : Prevent "hot linking" of images
Open httpd.conf or .htaccess file using vi text editor
# vi httpd.conf
Append following config directive:- SetEnvIfNoCase Referer "^http://www\.cyberciti\.biz/" banimages=1
- SetEnvIfNoCase Referer "^http://cyberciti\.biz/" banimages=1
- SetEnvIfNoCase Referer "^$" banimages=1
- <FilesMatch "\.(gif|png|jpe?g)$">
- Order Allow,Deny
- Allow from env=banimages=1
- </FilesMatch>
复制代码 Or you can use following simple code:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?cyberciti.biz/.*$ [NC]
RewriteRule ^.*\.(bmp|tif|gif|jpg|jpeg|jpe|png)$ - [F]
Solution # 2 : Prevent "hot linking" of images and redirect to new image
This method stop hotlinking and displays alternate image to endusers- RewriteEngine on
- RewriteCond %{HTTP_REFERER} !^$
- RewriteCond %{HTTP_REFERER} !^http://(www\.)?cyberciti\.biz/.*$ [NC]
- RewriteRule .*\.(gif|jpe?g|png)$ http://www.cyberciti.biz/noop.jpg [R,NC,L]
复制代码 Unless the image is displayed on cyberciti.biz, browers would see the image noop.jpg. Replace domain cyberciti.biz and upload noop.jpg to webroot.
If you made changes to httpd.conf file; restart Apache:
# /etc/init.d/httpd restart |
|