【发布时间】:2016-05-03 09:01:42
【问题描述】:
我似乎遇到了非常奇怪的问题。
我在 url 上调用 file_get_contents() 来获取电子邮件的 html。
像这样-
file_get_contents('http://www.mywebsite.co.uk/email.php?name=Seb');
我已经用这种方法上千次了。
当我调用 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 url 时,我得到了正确的服务器 IP。如果我从命令行运行 -
curl http://www.mywebsite.co.uk
我得到相同的默认页面。然而,如果我在我的机器上卷曲它,我会得到正确的主页。有什么缓存吗?!
尝试了无数次搜索,但卡住了。非常感谢任何帮助!
【问题讨论】:
-
Curl 和 file_get_contents 都不会缓存结果。如果您通过代理进行连接,则代理可能会使用页面的缓存版本进行响应,但不太可能。真的没有太多信息可以继续。该页面可能被请求的足够多,以至于他们阻止它并提供不同的页面。他们也可能阻止某些用户代理或类似请求。
-
如果他们选择阻止某些请求并以 404 响应重放,他们是罪魁祸首!
-
这是我的服务器/网站,所以不会阻止任何东西。它更像是服务器 dns 缓存而不是页面缓存。
标签: php linux curl dns browser-cache