我有一个带图片的网站,他们的链接通常在其他网站上。我怎么能理解我是否可以删除图像?比如检查链接的位置,或者有人看到其他网站的图像。
我希望你能理解我的要求。
由于
答案 0 :(得分:3)
要检查热链接,您需要具有要求您的图像的HTTP查询的HTTP_REFERER值。这不是一种可靠的方式,因为有几个原因可能导致它根本没有填充,即使是在热链接请求(“个人防火墙”解决方案,代理等)中也是如此。
您最好的选择是在日志中包含referer,对于经常使用的Apache,请参阅“Combined Log format”
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()
来更新文件修改时间。此时,您可以轻松找到最近访问过哪些文件,哪些文件没有。
所有这些方法都容易出错(例如,有人可能会通过代理进行热链接和访问您的图像。代理具有较长的保留时间,即使是明智的也不检查上游。您删除图像,没有任何反应 - 直到一周之后代理同步并且你终于看到了一个访问权限;并且在那时失败了,但这是你能做到的最好的。
答案 1 :(得分:2)
您永远无法确定图像是否未从任何地方链接,或者如果没有人碰巧访问它。可能有一个页面热链接图像,但没有任何流量。
检查您的网络服务器访问日志会告诉您是否正在使用图像以及使用频率; setting up referer logs可帮助您确定使用图像的位置。有了这些数据,您可以从更好的角度考虑下一步行动。
答案 2 :(得分:0)
使用Apache,您可以检查以防止hotlinking
(当有人从其他网站链接到您的图片时,就会调用它。)
以下是答案:http://altlab.com/htaccess_tutorial.html
这是一个生成.htaccess
http://www.htaccesstools.com/hotlink-protection/
但谷歌还有更多东西