在WordPress网站上获取404s,但只能从IE浏览器打开友好的错误消息

在http://doubleabody.com/的任何链接上,我只收到404页未发现错误(80%的时间),但仅限于IE浏览器,且仅在“友好错误消息”处于打开状态时才会发生。 进入IE设置并closures“友善的错误消息”,问题不会回来。 再次打开“友好的错误信息”,问题马上回来,但只有80%的时间。 没有其他的浏览器,除了IE有这个问题。 到目前为止,我们在IE8和IE9中看到了这个问题。

当我说80%的时间,我的意思是我清除浏览器历史logging和caching后,单击一个链接,并在IE中获得404消息。 但后来刷新了4次,突然页面显示正常。 closures“友善的错误信息”,问题就回来了。 我们在多种types的Windows(Ubuntu Linux上的VM上的XP,Vista,Windows 7,Windows Server 2008)上看到了这一点。

另外,这只是大约2周前的一个近期问题。 几个月来,这个网站在a2hosting.com上运行的很好。 到目前为止,a2hosting.com仍然是排除故障,他们也无法解决问题。

这是一个WordPress站点,已经加载了Pods CMS。 除Pods CMS之外,没有其他的插件。 我构build了一个自定义的WordPress主题,然后使用Pods CMS API来展示内容。 这从博客转换成一个小型商业网站。

这个网站的.htaccess也是普通的WordPress版本。

UPDATE1

根据来自@JeffAlbert的请求,我显示了当我遇到来自IE8浏览器的404错误日志的说法。 这是当我点击一个名为“/地图”的链接closures主页。 (请注意,我已经更改了IP地址为我的工作站保护。)注意第一次尝试,失败。 第二次尝试,经过了。

50.0.0.0 - - [25/Mar/2011:00:56:51 -0400] "GET /map HTTP/1.1" 404 9082 "http://doubleabody.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)" 50.0.0.0 - - [25/Mar/2011:00:56:59 -0400] "GET /map HTTP/1.1" 404 9216 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)" 

现在,这是当我点击/地图再次与IE8closures“友好的错误信息”时,会发生什么,它始终如一地罚款:

 50.0.0.0 - - [25/Mar/2011:01:03:19 -0400] "GET /map HTTP/1.1" 404 9216 "http://doubleabody.com/liftgates" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)" 

当我从Ubuntu Linux使用Google Chrome时,结果如下:

 50.0.0.0 - - [25/Mar/2011:01:07:20 -0400] "GET /about HTTP/1.1" 404 11801 "http://doubleabody.com/map" "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.151 Safari/534.16" 

我在WordPress编写了一个自定义主题。 它的工作方式是抓取到网站的所有连接,并将其发送到主题的index.php文件。 然后这会调用WordPress的get_header(),get_sidebar(),显示内容,然后get_footer() – 标准的WordPress的东西。

奇怪的是,日志反映了404状态。 所以,在我的index.php中,我把第一行看起来像这样:

头('HTTP / 1.1 200 OK');

此时,Apache日志不再显示404,而是200.现在,IE中的问题不再发生。

所以,这是我从这个问题中推测出来的。 很明显IE自IE浏览器开始就无视404条件。 但是上个星期,显然我猜测微软为IE7,IE8和IE9引入了一个系统更新,即使有效的内容回来,也会立即停止在404状态头上。 通过强制一个200头的主题,IE不再看到404,看到200.因此,没有错误。

现成的猜测:坏的客户端可访问的DNS。 testing方法:在你的web服务器访问日志中确认你是否真的看到任何客户返回的404; 如果没有,那么请求永远不会到达您的Web服务器,您应该开始查看DNS(从您的域的权威来源开始)或客户端的实际networking连接问题。

如果您确实看到实际的404返回,您的客户端尝试加载的path可能会给您一个很好的主意,说明导致问题的原因。 希望有所帮助!