我正在为客户端做一些自动化,并计划在此过程中通过cURL运行一些PHP脚本。但是,当cURL命中时,在浏览器中正常工作的URL将会出现404。我在其他地方已经看到一些服务器被配置为以这种方式阻止cURL。

这是我可以在 httpd.conf 中编辑的设置吗?似乎不在 php.ini

我的代码是这样的:

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

当我回显 $ res 时,我从默认的404错误页面获取代码。如果我复制回显的$ url并粘贴到浏览器中,我的页面就可以了。还尝试使用相对路径和完整服务器路径。

今天添加了用户代理欺骗,试图查看说我不是cURL会有所帮助,但响应中没有任何内容发生变化。

关于如何追踪这个或更好的根本原因但是还有什么想法呢?

有帮助吗?

解决方案

事实证明,The Planet的善良人士对此帐户存在一些内部路由问题。 / etc / sysconfig / network中的主机名设置错误以及/etc/resolv.conf中的错误解析器等等。最近,这个和许多其他站点从其中一个服务器迁移到另一个服务器。尚未修复,但这就是404的原因。

感谢。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top