ChinaUnix首页 > 精华文章 > Linux > 正文

[精彩] 如何实现这样的盗链功能?


http://www.chinaunix.net 作者:squall1  发表于:2005-12-09 00:59:10
发表评论】 【查看原文】 【Linux讨论区】【关闭

比如用户要从我的网站上下载一个zip或rar的文件,但必须要在我的网站上能下载,复制链接放到其他网站提示“本网站防止了盗链功能,请从本站指定位置下载”

现在Apache已经支持mod_rewrite.so模块。

Apache版本:2.0.52

谢谢!



 triumph 回复于:2005-06-09 09:37:47

首先要确认你的服务器或空间的服务器解译引擎为Apache2,还有支持.htaccess客户设置文件,
如果你有自己的服务器就请先对./conf/httpd.conf 文件做以下修改
找到:#LoadModule rewrite_module modules/mod_rewrite.so
把前面的 # 给去丢
找到等一个 AllowOverride None 改为 AllowOverride All
重启Apache2服务器

接下就是做一个 .htaccess 文件了,其 .htaccess 文件内容为

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://173.com.ru/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://173.com.ru$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.173.com.ru/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.173.com.ru$      [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ http://down.173.com.ru/err.html [R,NC]

其中有色的地方都是要改为你的:
 红色:就是改为你提供下载页面的地址,也就是只有通过这个地址才可以下载你所提供的东东。
 蓝色:就是要保护文件的扩展名(以|分开),也就是说以这些为扩展名的文件只有通过红色的地址才可以访问。
 绿色:如果不是通过红色的地址访问蓝色这些为扩展名的文件时就回重定向到绿色地址上。

接下就是怎么用 .htaccess 文件来实现防盗链了。
 首先要在空间上建两个目录(当然目录名随你),一个为 web 另一个为 down ,
 web 是用来放下载页面的(或下载程序),down 当然就是放你提供的东东的啦,
 把 .htaccess 文件的红色部分改一下,改为http://你的域名/web。蓝色部分
 改为你要保护文件的扩展名。绿色部分改为http://你的域名/web。改后保存 
 .htaccess 文件把它上传到 down 目录。

好了这样就完成了,简单吧,现在你不需要去买那些所为的大形服务器就用这样
功能,我们可是山下的人有钱上网搞个FREE空间就算不错啰。

以上的相关演试:
http://173.com.ru/downs.html
上面有个[防盗链相关]有一个可以在你空间生成 .htaccess 文件的PHP程序如果
你不会做 .htaccess 文件或你的空间不允许上传 .htaccess 文件就可以用这个
PHP程序来在你的空间直接生成。
PHP程序下载地址
http://down.173.net.ru/fdowns.rar


 好好先生 回复于:2005-06-09 10:04:28

good thanks!


 我自逍遥 回复于:2005-06-09 10:12:22

我也顺便学习一下。


 squall1 回复于:2005-06-09 14:56:17

多谢triumph兄弟指导,我回去试试。


 triumph 回复于:2005-06-09 22:07:18

呵呵,不要谢我,这也是以前我想做这个的时候,查的资料。上面的是别人写的。我只是copy了一下


 squall1 回复于:2005-06-09 22:26:20

引用:原帖由 "triumph"]呵呵,不要谢我,这也是以前我想做这个的时候,查的资料。上面的是别人写的。我只是copy了一下
 发表:



我测试完了,正是我要的那种形式,哈哈,多谢了朋友。 :em02:  :m01:  :mrgreen:  :em09:  :em04:  :D  :lol:  :em18:  :em11: 

动画演示:
http://www.grlinux.net/squall/steal_link.rar


 SunGod 回复于:2005-06-20 11:01:16

楼主下毒,用意何在


 ryan2 回复于:2005-12-09 00:24:54

我在apache2的手册里看到,rewrite在服务器级的(httpd.conf)和目录级的(.htaccess)配置都有效

我尝试了两种方法,却都不行
我的apache版本是2.0.55

我安装apache是没配rewrite,是后来编译的
方法是这样
/usr/local/apache/bin/apxs -c -i -a /opt/httpd-2.0.52/modules/mappers/mod_rewrite.c

向大家请教了


 ryan2 回复于:2005-12-09 00:59:10

已经成功了,谢谢
原来要放在<Directory /></Directory>里




原文链接:http://linux.chinaunix.net/bbs/viewthread.php?tid=558771
转载请注明作者名及原文出处