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,文档正文显示“如果您的浏览器没有重定向您,请单击此处”锚点的主要内容,如果未能解决你的问题,请参考以下文章