php获取浏览器地址然后防盗链,刷新后便获取不到地址,请教是咋回事
程序员文章站
2022-05-29 21:25:12
...
php获取浏览器地址然后防盗链,刷新后便获取不到地址,请问是怎么回事啊
我的x.php代码如下。这个代码的大概意思是:我用一个网站引用另外一个网站的资源。
我的网站是http://www.123.com 和 http://www.abc.com
如果我输入http://www.123.com/x.php/love.mp3,实际上打开的是
http://www.abc.com/abc/love.mp3。下面代码完全可以实现了。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
header("content-Type: text/html; charset=Utf-8");
$SERVER=$_SERVER["REQUEST_URI"];
preg_match("/php\/([\s\S]+)\.mp3/",$SERVER,$url);
$urlname=$url[1];
$downurl='http://www.abc.com/abc/'.$urlname.'.mp3';
header("location:$downurl");
?>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
网页中的播放器可以正常播放http://www.123.com/x.php/love.mp3
后来我加入了防盗链,防下载,代码:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
header("content-Type: text/html; charset=Utf-8");
$SERVER=$_SERVER["REQUEST_URI"];
preg_match("/php\/([\s\S]+)\.mp3/",$SERVER,$url);
$urlname=$url[1];
$downurl='http://www.abc.com/abc/'.$urlname.'.mp3';
$url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL
$str = str_replace("http://","",$url); //去掉http://
$strdomain = explode("/",$str); // 以“/”分开成数组
$domain = $strdomain[0]; //取第一个“/”以前的字符
if ($domain=="www.123.com"){
header("location:$downurl");
}
if ($domain==""){
header("location:http://www.123.com/daolian.mp3");
}
if ($domain!="www.123.com"){
header("location:http://www.123.com/daolian.mp3");
}
?>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
修改完成后,防盗链防下载是实现了,在网页中的播放器播放http://www.123.com/x.php/love.mp3,却播放不了,请问这是代码究竟是什么地方出了问题啊。
我的x.php代码如下。这个代码的大概意思是:我用一个网站引用另外一个网站的资源。
我的网站是http://www.123.com 和 http://www.abc.com
如果我输入http://www.123.com/x.php/love.mp3,实际上打开的是
http://www.abc.com/abc/love.mp3。下面代码完全可以实现了。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
header("content-Type: text/html; charset=Utf-8");
$SERVER=$_SERVER["REQUEST_URI"];
preg_match("/php\/([\s\S]+)\.mp3/",$SERVER,$url);
$urlname=$url[1];
$downurl='http://www.abc.com/abc/'.$urlname.'.mp3';
header("location:$downurl");
?>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
网页中的播放器可以正常播放http://www.123.com/x.php/love.mp3
后来我加入了防盗链,防下载,代码:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
header("content-Type: text/html; charset=Utf-8");
$SERVER=$_SERVER["REQUEST_URI"];
preg_match("/php\/([\s\S]+)\.mp3/",$SERVER,$url);
$urlname=$url[1];
$downurl='http://www.abc.com/abc/'.$urlname.'.mp3';
$url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL
$str = str_replace("http://","",$url); //去掉http://
$strdomain = explode("/",$str); // 以“/”分开成数组
$domain = $strdomain[0]; //取第一个“/”以前的字符
if ($domain=="www.123.com"){
header("location:$downurl");
}
if ($domain==""){
header("location:http://www.123.com/daolian.mp3");
}
if ($domain!="www.123.com"){
header("location:http://www.123.com/daolian.mp3");
}
?>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
修改完成后,防盗链防下载是实现了,在网页中的播放器播放http://www.123.com/x.php/love.mp3,却播放不了,请问这是代码究竟是什么地方出了问题啊。
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
- 最新文章
- 热门排行
上一篇: Ajax传递特殊字符的数据如何解决
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论