我做了这个简单的代码,以防止我的PHP下载文件盗链我的文件:
if ((strpos($_SERVER['HTTP_REFERER'],'www.domain.com')!==0)) {
$redirect='index.php';
header("Location: $redirect");
exit;
}
它不工作,它总是重定向即使我点击我的wbesite里面的链接我的index.php。 我试图域变化很多类型,如:
http://www.domain.com
www.domain.com
domain.com
域
但还是同样的问题
我找到了解决办法,我只是做之间的比较HTTP_REFERER
和HTTP_HOST
使用strpos
,如果他们匹配意味着没有盗链。 代码 :
if($_SERVER['HTTP_REFERER'])
{
if(!strpos($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST']))
{
$redirect='index.php';
header("Location: $redirect");
}
}
实际上,你想用!== FALSE
来代替。 该字符串可能是在位置0
。 还包括zerkms'建议:
if (!empty($_SERVER['HTTP_REFERER']) &&
(strpos($_SERVER['HTTP_REFERER'],'www.domain.com') !== FALSE)) {
文档: http://php.net/manual/en/function.strpos.php