5

我听说我从 HTML 页面重定向的常用方式,比如

<meta http-equiv="REFRESH" content="0;url=page.html">

已被最新的 HTML 弃用。是真是假,如果是这样,还有什么其他的重定向方式?

4

4 回答 4

5

重定向的正确方法是发送重定向标头。您需要将 status 从更改200 OK为适当的3xx status。然后你还需要包含Location: http://yourRedirectURL标题。实现取决于您在后端使用的编程语言。

于 2012-11-01T02:09:55.350 回答
2

假设您只是使用零超时,则使用Location标题既是无缝的,也是将某人重定向到另一个页面的更有效方式。

除非您先将它们放在着陆页上,然后再重定向它们,否则请使用 Location 标头。

我还应该注意,位置标头指定它应该提供一个完全限定的地址以登陆,而不是使用基于站点的绝对或相对路径。例如

Location: http://www.google.com/

代替:

Location: /login
Location: ../../home
于 2012-11-01T01:28:11.303 回答
2

如果您使用的是 php,则可以使用以下代码(在任何其他输出到浏览器之前):

<?php header('Location: http://example.com'); ?>
于 2012-11-01T02:06:15.733 回答
2

它在技术上没有被弃用,但这只是因为伪术语“弃用”在“规范”中被草率地使用。元重定向机制在 HTML 4.01 中被描述为“不应该” :

“笔记。一些用户代理支持使用 META 在指定的秒数后刷新当前页面,并可以选择用不同的 URI 替换它。作者不应使用此技术将用户转发到不同的页面,因为这会使某些用户无法访问该页面。相反,应该使用服务器端重定向来完成自动页面转发。”</p>

尽管 HTML5 草案描述了元刷新机制,但没有说明这些内容,尽管这些示例是关于不同的用途。这并没有使它成为更好的主意。它不应用于将地址重定向到新地址,除非您无法影响服务器行为以便进行适当的 HTTP 重定向。在这种情况下,建议将新地址的正常链接添加到文档正文中,以应对元重定向不起作用的情况。

于 2012-11-01T06:25:54.510 回答