この PHP スクリプトをプロキシとして使用しています。サーバー A では同じスクリプトが問題なく動作しますが、サーバー B では動作せず、次のエラーが表示されます。
failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized
と
Cannot modify header information - headers already sent by
サーバー B では、allow_url_fopen = オン
設定されています
何が間違っている可能性がありますか?
ありがとう
<?php
/*
* in JavaScript call with `encodeURIComponent`
* $.get('proxy.php?proxy_url='+encodeURIComponent('http://google.com?param=1¶m2=2'))
*/
$url = rawurldecode($_GET['proxy_url']);
$cb = ! empty($_GET['callback']) ? $_GET['callback'] : null;
if(preg_match('#ccc\.aaa\.com/bbb/#', $url)){
$url = preg_replace('#http\://xxx\.xxx\.com/xxx/#', '', $url);
}
if(! preg_match('#^https?:#', $url)){
$url = preg_replace('#^[\.\/]+#', '', $url);
if(!file_exists($url)){
echo 'File not found';
die(0);
}
}
if(preg_match('#\.xml$#', $url)){
header('Content-type: text/xml');
}
$file = file_get_contents($url);
if($cb){
header('Content-type: application/javascript');
echo $cb.'('.$file.');';
}else{
echo $file;
}