我看到很多来自其他网站对我的服务器上托管的图像的请求。
为了不让这种情况继续下去,我正在考虑使用 mod_rewrite 和 .htaccess 来阻止这种情况,使用类似
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|png)$ - [F]
我确信我读到过一些文章说可能会出现一些不良副作用或“陷阱”,但找不到源代码或任何相关信息。大多数网站只提供代码片段,而不讨论该方法的优缺点。
如果我选择将其放在我的服务器上,是否存在我应该注意的不良副作用或“陷阱”?
答案1
我已经在我的网站上使用它多年了(使用 CPanel 配置),只要它只用于节省带宽,它就运行良好。您只需要在添加另一个域/子域时记得更新文件,否则它们也会被阻止。
如果配置正确,它不会像另一个答案中所建议的那样阻止具有空白引荐来源的人,它只会阻止具有不在允许列表中的引荐来源的连接。
另外,我修改了脚本以重定向到 PHP 文件,这样我就可以根据域和请求的文件类型采取不同的操作:
RewriteRule .*\.(jpg|jpeg|gif|png|mp4|mp3)$ http://www.example.com/hotlink.php?%{SERVER_NAME}%{REQUEST_URI} [R,NC]
这样,PHP 脚本就会接收域名(我在同一个帐户中托管了多个域名)和触发热链接保护的 URL。
答案2
唯一真正的问题在于,如果您尝试使用来自 mobile.yourdomain.com 或 someotherdomainIown.net 的图像,而这些图像会被阻止。我还看到许多管理员将热链接图像重定向到其他图像,例如:“此人正在窃取 yourdomain.com 的带宽”。