Pergunta

Estou fazendo alguma automação para um cliente e foi pensando em correr alguns scripts PHP via cURL no processo. No entanto URLs que funcionam bem em um navegador estão chegando 404 quando atingido por cURL. Eu vi menção em outro lugar que alguns servidores são configurados para bloquear cURL desta forma.

Este é um cenário que eu poderia editar em httpd.conf? não parece estar em php.ini.

Meu código é assim:

  $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);

Quando eu echo $res eu recebo o código da página de erro padrão 404. Se eu copiar o url $ ecoou e cole no navegador eu recebo a multa página. Também tentei usar caminho relativo e caminho completo do servidor.

A falsificação de agente de usuário foi adicionado hoje para tentar ver se dizendo que eu não era cURL ajudaria, mas nada na resposta alterada.

Todos os pensamentos sobre a forma de rastrear a causa raiz deste ou ainda melhor resolvê-lo?

Foi útil?

Solução

Acontece que os povos amáveis ??para o planeta tem alguns problemas de roteamento interno com esta conta. configurações de nome de host ruim em / etc / sysconfig / network e maus resolvedores em /etc/resolv.conf entre outras coisas. Esta e uma série de outros sites foram recentemente migrado de um de seus servidores para outro. Ainda não fixo, mas foi por isso que o 404.

Graças.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top