file_get_contents()返回缓存页面

时间:2016-01-26 17:24:09

标签: php linux curl dns browser-cache

我似乎有一个奇怪的问题。

我在网址上调用了一个file_get_contents()来获取电子邮件的html。

喜欢这个 -

file_get_contents('http://www.mywebsite.co.uk/email.php?name=Seb');

我已经使用过这种方法1000次了。

当我调用url时,即使文件存在,我也会收到404标题。经过进一步调查,当我调用根域时,我得到一些默认保留页面 -

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Refresh" content="0;url=defaultsite" />
<!-- UK -->
</head>
<body>
</body>
</html>

我检查了DNS记录,看起来是正确的。当我ping网址时,我得到了正确的服务器IP。如果我从命令行运行 -

curl http://www.mywebsite.co.uk

我得到了相同的默认页面。然而,如果我在我的机器上卷曲它,我会得到正确的主页。有某种缓存吗?!

尝试了无数次搜索但却陷入困境。任何帮助非常感谢!!

2 个答案:

答案 0 :(得分:1)

如果有缓存,您可以通过在请求中添加一个包含当前时间戳的参数来避免它。

file_get_contents('http://www.mywebsite.co.uk/email.php?name=Seb&t='.time());

它将强制服务器获取所请求的资源。

答案 1 :(得分:0)

所以我设法解决了这个问题。

此特定域似乎同时具有A记录和AAAA(IPv6)记录。哪个指向不同的服务器。似乎大多数机器都在使用A记录,而由于某种原因,该服务器正在使用AAAA记录。

最初发现并不容易,因为常见的DNS检查器只显示我见过的A记录。

我通过调用 -

找到了这个
curl -v -I http://www.example.com

返回呼叫的IP地址。

我希望这有助于其他人,我已经失去了几个小时!

相关问题