301/302,文档正文显示“如果您的浏览器没有重定向您,请单击此处”锚
我们将实现一个包含所有 301 和 302 响应的小型文档主体。
它们将包含一小段 html,其中有一个锚点指向应将用户重定向到的 URL。
执行此操作时是否有任何陷阱或我们应该了解的事情,或者是否像发送“位置”标头时在文档正文中包含 html 一样简单?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果浏览器看到 301/302 HTTP 结果代码,它将忽略文档/响应正文,并立即重定向到
Location:
响应标头中指定的 URL。但是是的——您可以显示这样的页面并重定向到新的 URL ..但这将与正常点击链接相同(而不是任何方式的 301/302 重定向),因此不利于 SEO 目的。如果感兴趣——可以这样做:
当用户点击此类页面时,向他/她显示您的重定向消息/页面。在该页面中,可以通过两种方式实现此类重定向:
使用 JavaScript --
window.location = "http://www.example.com/new-url"
。您需要做的就是在页面加载后 10 秒执行此代码 - 为此使用setTimeout()
功能。没有 JavaScript(首选方法,因为即使 JavaScript 被禁用或不可用,它也能工作),使用
标题行:
If browser will see 301/302 HTTP result code it will IGNORE document/response body and will do instant redirect to the URL specified in
Location:
response header.But yes -- you can display such page and do redirect to a new URL .. but this will be the same as normal click on a link (and not 301/302 redirect in any means) and therefore is not good for SEO purposes. If interested -- this is how it can be done:
When user hits such page, show him/her your redirect message/page. In that page such redirect can be achieved in 2 ways:
Using JavaScript --
window.location = "http://www.example.com/new-url"
. All what you need to do is to execute this code 10 seconds after page is loaded -- for that usesetTimeout()
functionality.Without JavaScript (preferred method as it will work even if JavaScript is disabled or not available) using
<meta http-equiv="refresh"
header line:<meta http-equiv="refresh" content="10; url=http://www.example.com/new-url">