对不起标题不好,不知道如何用几句话来解释:
我有一个处理图像的php页面,可以很好地显示它们并保存有关视图计数的统计信息。
如果用户直接在其浏览器(i.host.com/image.jpg)中访问图像URL,则图像将显示在自定义页面上。位置“i.host.com/image.jpg”不是图像的实际位置。
在代码中,在db中检查图像url以获取它的实际url,然后我将标题重定向到该实际url。实际网址的位置不是恒定的,因为用户可以使用网站(允许热链接)作为源(用于上传他们的图片等,'假'图像名称是他们为其定义的名称)。
我通过以下方式做到这一点:(我所拥有的非常基本的例子)
//Code for updating view count stats etc removed
if(/a/ is in the image url){
header("Location: $pathtoactualimage", true, 301);
} else {
//In my actual code, this echo produces an entire html page, not just image tag.
echo('<img src="http://i.host.com/a/image.jpg"/>');
//note that this image tag requests image using '/a/' path
}
不使用“a”路径的常规图像标记不会显示图像,因为网址正在被处理为实际页面而不是图像。
我想知道是否可以确定是否通过浏览器直接访问i.host.com/image.jpg这样的图像网址,或者是否通过某些代码(某处包括其他网站)调用该图像网址所以我不必使用这个凌乱的'a'路径解决方法?
答案 0 :(得分:0)
Tldr ..
我总结一下..
使用htaccess文件将对图像文件夹的所有请求重定向到处理程序脚本。
在处理程序脚本中,使用$ _SERVER [&#34; HTTP_REFERER&#34;]来检查引荐来源是否是您的网站..
如果是这样,请直接发送到您的图片,如果不做其他事情