如何重定向显示您正在重定向的显示内容(如旧版Gmail和LinkedIn)。每当我尝试这样做时,我都会收到错误,说Headers已经被发送了。
然后有人告诉我在重定向之前我不应该输出任何标记(比如facebook登录)。那么我如何去做并在重定向期间显示一些不错的东西?
答案 0 :(得分:3)
您想要使用元重定向。它们使您能够显示页面,几秒钟后,此页面将向您发送新页面。您所要做的就是在“好东西”重定向页面的部分添加标签。
这是关于元重定向的快速教程: http://webdesign.about.com/od/metataglibraries/a/aa080300a.htm
你想做这样的事情:
<html>
<head>
<meta http-equiv="refresh" content="2;url=whereto">
2 是显示页面的秒数,到哪里是您要向用户发送的位置
答案 1 :(得分:2)
您需要输出您的页面,其中包含以下META关键字:
<html>
<head>
<!-- redirection to example.com in 5 seconds -->
<meta http-equiv="refresh" content="5;url=http://example.com/" />
...
</head>
<body>
...
阅读以下文章以获取更多帮助:http://en.wikipedia.org/wiki/Meta_refresh
答案 2 :(得分:1)
这些重定向不是通过“普通”重定向HTTP标头完成的。相反,他们会显示一个页面,并使用META Refresh或某些Javascript导航到新页面。
我个人认为这两种方法对用户和搜索引擎都不是很好。使用HTTP标头也表示为什么有重定向(永久移动,临时,&amp; c。)是更好的imho。
答案 3 :(得分:0)
如果你收到已经发送的标题,那么这意味着你正在尝试使用PHP header()重定向重定向,并且在调用header()函数之前在屏幕上输出,1解决方案就是使用PHP的输出缓冲,然后允许您在页面上的任何位置调用header()重定向,而不会得到该错误。
要显示一条消息,您可以使用其他答案中提到的元方法,甚至可以使用它进行javascript重定向,只是为了安全,但我会这样做的方式如下所示
<?PHP
ob_start();
//show a message
echo 'You will be redirected in 10 seconds';
//amount of time to show the message above before redirecting
sleep(200);
//redirect
header('http://domain.com');
?>
我没有测试过这个但是你应该明白这个想法,实际上现在我想一想,sleep()可能无法按预期正确使用输出缓冲