热链接重定向

时间:2011-10-14 13:48:44

标签: image http-headers

我的网站上有以下网址: www.example.com/yyy.gif 。 它实际上不是图像的直接链接,而是包含图像的HTML页面(所述图像的直接URL是www.example.com/files/yyy.gif)。我想保持这种方式。

问题

当链接(www.example.com/yyy.gif)在某处发布时(论坛,各个网站上的评论),他们的脚本假定它是图像的直接链接并尝试将其显示为图像(<image src="www.example.com/yyy.gif">)导致其网站上的图像损坏。

问题

有没有办法检测这些情况并自动将它们重新路由到直接图像网址?请注意,访问者应该能够在不重定向的情况下打开原始网址。

2 个答案:

答案 0 :(得分:1)

您可以查看$ _SERVER ['HTTP_REFERER']变量,看看网址是否来自您的网站。

如果没有,请为图像输出一些标题,然后输出图像本身而不是通常的标题。

答案 1 :(得分:1)

我想我明白了!

因此,我检查了通过链接上的链接以及使用<img>标记加载时访问相同URL时生成的请求标头。

唯一不同的参数是“接受”。当<img>访问该网址时,它是*/*(Chrome,IE,Safari)或image/png,image/*;q=0.8,*/*;q=0.5(FF)。

但是当通过点击链接(或直接打开网址)进行访问时,就像这样text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

所以我在输出任何内容之前在我的脚本中检查'text / html'。如果它存在,我输出html版本;否则直接去拍照。

它似乎正如我想的那样工作(耶!)。

我应该注意哪些陷阱?