像这个网页http://www.qincai.net/ent-1703458.html,里面“手机”等联系方式都是图片,但是复制它的链接地址放到浏览器地址栏打开时,看到的却是所在页面的链接地址,页面又能正常显示。这样防止页面图片被采集,怎么做到的呢?请高手指点,谢谢。

解决方案 »

  1.   

    url 重写,交给 php 判断一下来源
      

  2.   

    apache图片防盗链
      

  3.   

    用.htaccess来控制:
    ①httpd.conf 配置:mod_rewrite前面的#去掉
    ②在需要防盗链的网站目录下,创建 .htaccess文件
    ③在.htaccess文本里写入重新规则:
    参考视频http://www.zixue.it/forum.php?mod=viewthread&tid=6977&extra=page%3D2%26filter%3Dtypeid%26typeid%3D35%26typeid%3D35
      

  4.   


    感谢版主大人,这种方法我测试过,不起作用,我服务器用的是linux, 我的配置文件是这么写的:<Files ~ "^.(htaccess|htpasswd)$">
    deny from all
    </Files>
    order deny,allow
    RewriteEngine On
    RewriteBase /RewriteRule ^.*$ - [L]
    RewriteCond %{REQUEST_URI} ^/img
    RewriteCond %{REQUEST_FILENAME} \.(jpg|gif|bmp|zip|rar|mp3|txt|png|wma|wmv)$ [NC]
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?mywebsite.com(/)?.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?baidu.com(/)?.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?google.com(/)?.*$ [NC]
    RewriteRule (.*) /image/nophotos.jpg [R,NC,L]
      

  5.   


    谢谢,我之前参考过网上的.htaccess规则,但是测试后发现不起作用。
      

  6.   

    每次为图片设定一个不同的url,会不会防止被采集呢
      

  7.   

    <?php
    $ch = curl_init(); //初始化
    curl_setopt($ch, CURLOPT_URL, 'http://www.qincai.net/png/tele_1703458.png'); //你要访问的页面
    curl_setopt($ch, CURLOPT_REFERER, 'http://www.qincai.net/'); //伪造来路页面
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //是否显示内容
    $return_content = curl_exec ( $ch );  
    curl_close($ch); //返回关闭
    $filename = 'test2.jpg';  
    $fp= @fopen($filename,"a"); //将文件绑定到流    
    fwrite($fp,$return_content); //写入文件 
    ?>
    <img src="test2.jpg" />你可以自己测试看看是不是得到了他的图片,在本地测试就知道了
      

  8.   


    可以得到图片,我现在是想获得和他一样的功能,你看怎么实现,谢谢
    这个很简单的啊,就是在生成验证的地址进行判断来源,如果是本站的来源就显示验证码,否则就显示当前地址谢谢版主的提醒,我查了资料,用PHP可以判断来路,根据来路来输出相应图片,但是不清楚这个qincai.com他们的实现办法,他们是当保存图片的时候才显示错误图,这个请问怎么实现。
      

  9.   

    防盗链 基本从referer入手 避免外站直接调用自己的图片
    但无法防采集,因为数据包是可以任意伪造的