301/302,文档正文显示“如果您的浏览器没有重定向您,请单击此处”锚点

Posted

技术标签:

【中文标题】301/302,文档正文显示“如果您的浏览器没有重定向您,请单击此处”锚点【英文标题】:301/302 with document body showing 'click here if your browser doesn't redirect you' anchor 【发布时间】:2011-10-26 23:45:08 【问题描述】:

我们将实现一个包含所有 301 和 302 响应的小型文档正文。

它们将包含一小段 html,其中的锚点指向应重定向用户的 URL。

在执行此操作时是否有任何我们应该知道的陷阱或事情,或者在发送“位置”标头时是否像在文档正文中包含 html 一样简单?

【问题讨论】:

不,就这么简单。虽然不支持 30 倍重定向的浏览器......几乎不存在,所以我真的不会打扰。 【参考方案1】:

如果浏览器将看到 301/302 HTTP 结果代码,它将IGNORE 文档/响应正文并立即重定向到Location: 响应标头中指定的 URL。


但是是的——你可以显示这样的页面并重定向到一个新的 URL .. 但这将是与正常点击链接相同(而不是任何方式的 301/302 重定向),因此不适合 SEO 目的。如果有兴趣,可以这样做:

当用户点击此类页面时,向他/她显示您的重定向消息/页面。在该页面中,可以通过两种方式实现此类重定向:

    使用 javascript -- window.location = "http://www.example.com/new-url"。您需要做的就是在页面加载 10 秒后执行此代码 - 为此使用 setTimeout() 功能。

    不使用 JavaScript(首选方法,因为即使 JavaScript 被禁用或不可用,它也能工作)使用 <meta http-equiv="refresh" 标题行:

    <meta http-equiv="refresh" content="10; url=http://www.example.com/new-url">

【讨论】:

你误解了这个问题:( 301/302 标头仍将被发送。但以防万一,例如,如果用户有一个禁用重定向的 Firefox 扩展,我们也希望包含一个文档正文... 有趣的浏览器扩展——我猜对于那些喜欢离开石器时代的人来说。尽管如此 -- 该过程将与您通常生成页面的过程相同 -- 直截了当,没有什么特别之处。

以上是关于301/302,文档正文显示“如果您的浏览器没有重定向您,请单击此处”锚点的主要内容,如果未能解决你的问题,请参考以下文章

forward和redirect的区别?http状态码301,302分别代表什么?

表单提交响应 301 或 302

301和302 Http状态有啥区别?

转:HTTP 301 跳转和302跳转的区别

从HTTP状态 301,302,200 来看页面跳转

状态码301 302