404文件在服务器上时

时间:2014-06-28 20:01:10

标签: php curl http-status-code-404

尝试使用浏览器访问a simple PHP script我可以找到它。但是,尝试通过curlget_headers访问它会得到404结果。例如

$url = 'http://dardesarchat.ir/findme.php';
print_r(get_headers($url, 1));

给出

Array
(
    [0] => HTTP/1.1 404 Not Found
    [Date] => Sat, 28 Jun 2014 19:38:34 GMT
    [Server] => Apache/2
    [Accept-Ranges] => bytes
    [Vary] => Accept-Encoding,User-Agent
    [Connection] => close
    [Content-Type] => text/html
)

这不是与dns相关的,因为get_headers http://dardesarchat.ir/index.html尝试返回[0] => HTTP/1.1 200 OK时,只有无法找到的PHP文件

这也不是PHP相关的(如果缺少一些cookie,则故意返回404,等等)。 findme.php中的代码是这样的:

<?php
die('I sure am here :P');
?>

最后,主机上没有htaccess个文件。怎么会这样?

2 个答案:

答案 0 :(得分:1)

解决一般网络问题:

最常见的问题始终是DNS问题。

  1. 检查您的客户端计算机是否可以正确解析服务器(nslookupping从客户端计算机应显示正确的IP)。请注意IPv4和IPv6,因为Apache服务器通常只监听IPv4连接。

  2. 检查/etc/hosts(或Windows上的\system32\drivers\etc\hosts)是否有奇怪的配置。

  3. 如果该服务器安装了Web服务器,则
  4. curl / wget index.html可能会为您提供任何index.html

  5. 检查客户端计算机中配置的DNS服务器(/etc/resolv.conf

  6. 其他可能的错误来源:

    • 客户端计算机是否在(透明)代理后面?
    • 客户端计算机是否处于一个奇怪的网络中,网关上的路由表甚至更奇怪?

答案 1 :(得分:0)

当我使用与您完全相同的代码时,我会收到HTTP 200响应。

$url = 'http://dardesarchat.ir/findme.php';
print_r(get_headers($url, 1));

给我:

[0] => HTTP/1.1 200 OK

我在这里看不到任何问题。