2013-12-13 2 views
0

다른 도메인에서 호스팅되는 파일에 연결하는 링크를 내 사이트에 표시해야합니다. 나는 다음 접근법을 사용하고있다.URL 리디렉션 PHP에서 마스킹

1)) 데이터베이스

$fileDownloadLink = "http://whatever.com/thefile.docx"; 

2에서 실제 URL을 선택하는 URL을 인코딩

$shortUrl = base64_encode($fileDownloadLink); 
<a href="<?php echo "http://www.mydomain.net/download.php?session=".$shortUrl;?>" target="_blank">Download Please</a> 

3) Download.php를 download.php하는 파라미터로 전달은 전달 디코딩 문자열을 읽고 파일을 읽으십시오.

<?php 
$str = $_GET["session"]; 
$path = base64_decode($str); 
$mm_type="application/octet-stream"; 
header("Pragma: public"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Cache-Control: public"); 
header("Content-Description: File Transfer"); 
header("Content-Type: " . $mm_type); 
header("Content-Length: " .(string)(filesize($path))); 
header('Content-Disposition: attachment; filename="'.basename($path).'"'); 
header("Content-Transfer-Encoding: binary\n"); 
readfile($path); 
exit(); 
?> 

하지만 불가

download.php

이 오류가 무엇입니까!

요청한 리소스를 적절히 나타내지 않은 메시지는 입니다. 이 오류는 Mod_Security에 의해 생성되었습니다.

도와주세요.

답변

0

그냥 download.php로 리디렉션 할 수 있습니다.

$str = @$_GET["session"]; 
$path = base64_decode($shortUrl); 
header("Location: $path"); 
exit();