Frage

ich einige Automatisierung für einen Klienten tue und plante auf einige PHP-Skripte über cURL im Prozess ausgeführt wird. Allerdings URLs, die in einem Browser funktionieren kommen 404, wenn von cURL getroffen. Ich habe erwähnt an anderer Stelle gesehen, dass einige Server sind so konfiguriert cURL auf diese Weise zu blockieren.

Ist dies eine Einstellung, die ich in httpd.conf bearbeiten könnte? Scheint nicht in php.ini zu sein.

Mein Code ist wie folgt:

  $url = "http://site.com/xxx/curl.php?cID=$c->cID&db=$c->db&un=$c->un&/";
  echo "$url";

  // spoofing FireFox 2.0
  $useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) 
    Gecko/20061204 Firefox/2.0.0.1";
  $ch = curl_init ($url) ;
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ;
  curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
  $res = curl_exec ($ch);

Wenn ich echo $res ich den Code aus der Standard-404-Fehlerseite. Wenn ich das Echo $ url und fügen Sie ihn in den Browser kopieren erhalte ich die Seite in Ordnung. Auch versuchte relativen Pfad und vollständigen Serverpfad verwendet wird.

Der Spoofing-User-Agent hinzugefügt wurde heute zu versuchen, wenn ich nicht sagen, cURL zu sehen war, würde helfen, aber nichts in der Reaktion geändert.

Alle Gedanken auf, wie die Ursache für diese aufzuspüren oder besser noch es zu lösen?

War es hilfreich?

Lösung

Es stellt sich heraus, dass die Art Leute auf dem Planeten haben einige internen Routing-Probleme mit diesem Konto. Bad Hostnamen Einstellungen in / etc / sysconfig / network und schlechte Resolvern in /etc/resolv.conf unter anderem. Diese und eine Reihe von anderen Websites wurden von einem ihrer Server auf einen anderen vor kurzem migriert. Nicht festgelegt noch nicht, aber das war, warum die 404.

Danke.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top