我有一个带有图片的网站,它们的链接通常在其他网站上。我怎么知道我是否可以删除图像?就像检查链接在哪里,或者是否有人从其他网站看到图像。
我希望你能理解我的要求。
谢谢
要检查热链接,您需要获取请求图像的 HTTP 查询的 HTTP_REFERER 值。这不是一种可靠的方法,因为有几个原因可能导致它根本不被填充,即使是在热链接请求中(“个人防火墙”解决方案、代理等)。
您最好的选择是在日志中包含引用者,对于经常使用的 Apache,请参阅“组合日志格式”
http://httpd.apache.org/docs/2.2/logs.html
然后使用合适的工具(例如 AWstats)分析日志。
要检查损坏的热链接,您可以检查ErrorLog
; 如果有人不再找到图像,则会在日志中留下痕迹。
如果您无权访问日志(或配置),但您有权访问.htaccess
,则可以使用mod_rewrite
.
您可以通过在内部重定向(用户什么都看不到)链接来做到这一点,例如
http://www.yoursite.com/images/myimage.jpg
到服务器端脚本,例如
http://www.yoursite.com/images/index.php?image=myimage.jpg
现在用户认为他仍在请求myimage
,但他实际上是在调用脚本。然后脚本可能会在数据库中存储上次访问时间,或者注意图像正在使用的其他方式:例如在 PHP 中,可以使用该函数touch()
来更新文件修改时间。此时,您可以轻松找出最近访问过哪些文件,哪些没有访问过。
所有这些方法都容易出错(例如,有人可能会通过代理盗链并访问您的图像。代理的保留时间很长,即使明智也不会检查上游。您删除图像,没有任何反应 -直到一周后代理同步并且您终于看到访问权限;并且失败了),但这是您能做的最好的事情。
您永远无法确定图像是否没有从任何地方链接到,或者是否没有人碰巧访问它。可能有一个页面会热链接图像,但没有获得任何流量。
检查您的网络服务器访问日志会告诉您是否正在使用图像以及使用频率;设置引用日志将帮助您确定图像的使用位置。有了这些数据,您可以从更好的角度考虑下一步行动。
使用 Apache,您可以检查以防止hotlinking
(当有人从另一个网站链接到您的图像时,这就是它的调用方式)。
这是一个答案:http ://altlab.com/htaccess_tutorial.html
这是一个生成.htaccess
http://www.htaccesstools.com/hotlink-protection/的工具
但是google上还有很多