我使用facebook调试器来检查我的页面,它显示了我的Response Code 404
,但对我来说它是有效的。
卷作品
我测试了浏览器和curl(从其他服务器)。GET和POST返回HTTP/1.1 200 OK
:
curl -i http://www.mypage.de/stuff/test.html
curl -i -X POST http://www.mypage.de/stuff/test.html
Page是有效的
我检查我的test.html使用http://validator.w3.org/和得到This document was successfully checked as XHTML + RDFa!
响应头
Accept-Ranges:bytes
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:497
Content-Type:text/html
Date:Mon, 10 Mar 2014 16:13:15 GMT
ETag:"28a0b29-353-4f4429866eebc"
Keep-Alive:timeout=5, max=99
Last-Modified:Mon, 10 Mar 2014 15:52:48 GMT
Server:Apache/2.2.22 (Debian)
Vary:Accept-Encoding
为什么facebook得到404?
如果我查看访问日志,所有请求都到达服务器,但404访问来自默认值,而不是正确的虚拟主机。
如果我在facebook中使用IP而不是dns,它会正常工作
如果遇到类似
这样的情况,应该检查服务器日志。facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
很可能是你的。htaccess阻止了Facebook爬虫。
如果机器的主机名与请求主机名相等,则使用默认的vhost。您可以在默认vhost中设置ServerName somethig-different-from-hostname
或使用a2dissite default
禁用默认vhost以防止此
原来这是DNS的问题。我们将主DNS和辅助DNS从我们自己的主机更改为主机,一天后它就工作了。