在网站上区分热链接与用户之间的区别

时间:2011-08-08 04:00:05

标签: php .htaccess

有没有办法区分热链接图片的网站与实际在网站上查看图片的用户?

<img src="http://example.com/img.jpg">

VS

用户直接在http://example.com/img.jpg

上查看

2 个答案:

答案 0 :(得分:5)

您的服务器通常可以区分直接在您的域上查看图片的用户和另一个热链接图片的域名。

停止热链接并允许直接查看的常用解决方案是.htaccess,只允许Apache将图像文件提供给您的域,不要将图像文件提供给其他域。

因此,用户仍然可以直接转到您的图片文件...因为您的图片位于您的域中,但您的图片无法在其他域的图片标记中使用。

所以,在你.htaccess的某个地方,你会有类似的东西:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

online tools可帮助您创建.htaccess的这些行。

当然,您不必具有此限制性,您可以允许一般的热链接,但仅限制来自“故障域”的热链接。

此外,如果您选择热链接器而不是他们请求的图像,而不是停止热链接,您可以让Apache为图像提供服务 - http://www.yourdomain.com/hotlink.jpg在下面的情况中:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.yourdomain.com/hotlink.jpg [R,L]

.htaccess examples

答案 1 :(得分:2)

您可以查看推荐人,但这不是100%准确。

用户可以欺骗引荐来源和代理,或者用户设置可以剥离/更改它。