Прежде всего, никогда не включайте файл, основанный только на пользовательском вводе. Представьте, что произойдет, если кто-то назовет ваш сценарий так:
http://example.com/proxy.php?path=/etc/passwd
Тогда к вопросу: какие данные вы используете? Если это вообще так, то вам нужно определить тип контента по контенту и передать его, чтобы принимающая сторона знала, что он получает. Я бы предложил использовать что-то вроде HTTP_Request2 или что-то подобное от Pear (см .: http://pear.php.net/package/HTTP_Request2), если это вообще возможно. Если у вас есть доступ к нему, то вы можете сделать что-то вроде этого:
// First validate that the request is to an actual web address
if(!preg_match("#^https?://#", $_GET['path']) {
header("HTTP/1.1 404 Not found");
echo "Content not found, bad URL!";
exit();
}
// Make the request
$req = new HTTP_Request2($_GET['path']);
$response = $req->send();
// Output the content-type header and use the content-type of the original file
header("Content-type: " . $response->getHeader("Content-type"));
// And provide the file body
echo $response->getBody();
Обратите внимание, что этот код не был проверен, это просто для того, чтобы дать вам отправную точку.