2008-10-30 6 views
1

curl 또는 file_get_contents과 같은 것을 읽으려고하면 http://example.com/에서 http://example.com/python/json/을 읽으 려 할 때 JSON 응답을 받아야하지만 대신 404 오류가 발생합니다. curl 또는 내 도메인 외부의 다른 방법을 사용하면 완벽하게 작동합니다.자신의 도메인에서 파일 읽기 404

echo file_get_contents('http://example.com/python/json/'); => 404 
echo file_get_contents('http://google.com'); => OK 

동일한 스크립트가 내 랩톱에서 작동하지만 차이점을 알아낼 수 없습니다.

답변

2

example.com은 IP 주소의 기본 도메인이 아니며 file_get_contents는 HTTP/1.1 대신 HTTP/1.0을 사용하거나 Host : 헤더를 보내지 않은 것처럼 보입니다. 대신 PHP에서 컬 지원을 시도하십시오.

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, 'http://example.com/'); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($curl); 
curl_close($curl); 

또는/etc/hosts 파일이 example.com의 잘못된 IP 주소를 설정합니다.

+0

감사합니다. 도메인 이름을 IP 주소로 변경했는데 모두 설정되었습니다. –

+0

나는 비슷한 문제가있어서 정적으로 바뀌기 전에 누군가가/etc/hosts 파일을 이전 동적 IP로 하드 세트했다는 것이 밝혀졌습니다. 실수로 나를 도와 주셔서 감사합니다! – NateDSaint

0

도메인과 관련이 있을지도 모릅니다. 물론, 여기에 공개하고 싶지 않으므로 약간 할 수도 있습니다.하지만 웹 브라우저 (또는 GET과 같은 명령 줄 도구를 통해 해당 URL에 액세스 할 수 있는지 확인하는 것이 좋습니다. 명령 행만).

도메인에 대해 핑 (ping) 및/또는 traceroute을 수행 할 수도 있습니다. 결과에 조명이 잘 들어올 수 있습니다.