我似乎有一个奇怪的问题。
我在网址上调用了一个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
我得到了相同的默认页面。然而,如果我在我的机器上卷曲它,我会得到正确的主页。有某种缓存吗?!
尝试了无数次搜索但却陷入困境。任何帮助非常感谢!!
答案 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地址。
我希望这有助于其他人,我已经失去了几个小时!