php获取浏览器地址然后防盗链,刷新后便获取不到地址,请教是咋回事

WBOY
풀어 주다: 2016-06-13 12:41:33
원래의
810명이 탐색했습니다.

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,却播放不了,请问这是代码究竟是什么地方出了问题啊。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿