1

在我的 web.xml 中,使用 404 错误代码创建了错误页面标签来重定向页面。在 IE 中,如果取消选中“显示友好的 HTTP 错误消息”。然后只有它可以正常工作并显示重定向页面。如果启用该选项,则会出现“页面不显示”错误。任何人告诉我 IE Internet 选项中“显示友好的 HTTP 错误消息”选项的用途。(工具 -> Internet 选项 -> 高级 -> 浏览(显示友好的 HTTP 错误消息)

4

2 回答 2

8

IE 实现了这个功能,因为大多数用户不知道 404 是什么意思,这只会让他们更加困惑。不幸的是,对于开发人员来说,这意味着有用的信息或更好的实现会被用户屏蔽。杰夫·阿特伍德(Jeff Atwood)有一篇不错的文章,大约 404 页。他的建议之一是:

您必须使您的自定义 404 页面大于 512 字节,否则 IE 将假定它是标准的 Web 服务器 404 消息并用自己的友好版本替换它。

所以试着让你的 404 页面超过 512 字节,然后看看它是否会显示给用户。

于 2012-11-19T14:32:17.207 回答
2

HTTP 响应由 HTTP 标头和 HTTP 正文组成。第一个标头包含 HTTP 响应代码,它是一组已定义的数字代码,用于传达某种含义。一些状态码让客户端做一些特定的事情,而另一些则没有。任何响应都可能另外包含一个 HTTP 正文,通常是实际页面。

302 响应代码指示客户端尝试获取另一个 URL(也包含在标头中)。
404 响应表明所请求的页面不存在。它的意思是“错误”。
有关更多信息,请参见http://en.wikipedia.org/wiki/Http_status_codes

在任何一种情况下,如果响应还包含 HTTP 正文,浏览器可能会或可能不会以某种方式使用它。由它决定。通常,302 重定向响应不包含正文,而 404 错误响应包含一些 HTML 页面,说明“抱歉,出了点问题”。通常,这只是标准的丑陋默认 Apache 错误文档。

如果关闭IE 选项,IE 将简单地显示从服务器接收到的错误页面。如果该选项打开,它会在收到似乎无用的 404 错误时显示自己漂亮的“有用”错误页面。

现在是重要的部分:
不要使用 404 页面“重定向”!它们的意思是“错误”,而不是“重定向”。使用 302 响应和 HTTPLocation标头来重定向,而不是 HTML 元标记或 Javascript hack。

于 2012-11-19T14:34:30.247 回答