file_get_contents - Echec de l'ouverture du flux: la requête HTTP a échoué! HTTP / 1.1 404 introuvable
Je vais avoir quelques problèmes bizarres avec file_get_contents après le déplacement de mon site vers un nouveau domaine. J'ai dû mettre en place un nouveau nom de domaine et l'adresse IP (à l'aide de parallels Plesk panel) pour obtenir un nouveau certificat ssl de travail. Maintenant, mon file_get_contents appelle un script sur le même domaine qui me donne ceci:
failed to open stream: HTTP request failed! HTTP/1.1 404 not Found
Si j'appelle la même url à l'aide de file_get_contents sur un autre serveur, il fonctionne très bien, et si je l'appelle www.google.com depuis le serveur, c'est à défaut de travaux, de sorte qu'il ne semble l'être si j'appelle une url sur le même sever!
J'ai le sentiment qu'il pourrait avoir quelque chose à voir avec le fait d'avoir deux IPs avec deux types de certificats ssl sur le serveur, quand je file_get_contents /(page d'index) du serveur sur le serveur j'obtiens le plesk control panel "c'est un nouveau domaine" de la page si c'est comme apache n'est pas à la recherche de la droite de l'hôte virtuel lorsqu'elle est appelée à partir de son propre serveur.
À préciser (on l'espère!):
Sur le serveur hébergeant le domaine:
file_get_contents('https://mydomain.com?limit=4&offset=0&s_date=2012-02-05&e_date=2012-03-13&order=release_date&dir=desc&cid=12');
donne "failed to open stream: HTTP request failed! HTTP/1.1 404 not Found"
file_get_contents('http://www.google.com');
fonctionne correctement
Sur un autre serveur:
file_get_contents('https://mydomain.com?limit=4&offset=0&s_date=2012-02-05&e_date=2012-03-13&order=release_date&dir=desc&cid=12');
fonctionne très bien.
J'ai essayé de retourner ssl off et je reçois toujours le même problème.
source d'informationauteur user1250758
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce problème aussi, lorsque je travaille sur un petit serveur de test à la maison. Le nom de domaine est résolu à l'adresse IP externe, et une demande est envoyée. Mais parce que la demande est venue de l'intérieur de votre réseau, le routeur n'a pas la reconnaître comme une requête normale. Il a probablement une interface web pour la configuration, et tente de retourner une page à partir de son propre système de gestion, qui est alors pas trouvé à l'emplacement que vous avez spécifié.
Dans ce cas, je travaillais sur un PC Windows, et j'ai pu le résoudre en ajoutant le domaine j'ai été le tester à mon
hosts
fichier, en précisant 127.0.0.1 comme adresse IP (ou l'adresse IP du serveur, si c'en est une autre machine sur le même réseau). Sous Linux, il devrait y avoir une solution similaire, je pense.Le problème n'est pas de PHP ou de votre serveur, mais votre routeur.
La plupart d'accueil fournit maintenant bloquer la
furl_open
paramètre qui vous permet d'utiliserfile_get_contents()
pour charger des données à partir d'une url externe.Vous pouvez utiliser CURL ou un
PHP
de la bibliothèque du client comme BoufferEssayer de faire ceci :