PHP中的重定向

时间:2011-08-01 15:45:49

标签: php redirect header http-headers location

如果我想用PHP重定向用户,我所知道的就是使用标题('Location:'http://www.example.com),但我一直在读这不是最好的方法在内部将用户从一个页面重定向到另一个页面。您可以重定向用户的其他选项有哪些?

示例:在底部显示:

要记住的重要事项
...例如,我不建议使用header()将用户反弹到不同的页面;有更好的方法可以减少页面加载次数并为用户提供更流畅的体验......

http://tinsology.net/2009/06/creating-a-secure-login-system-the-right-way/

5 个答案:

答案 0 :(得分:1)

不错。但是,您可以添加301响应代码以使其更好,Google也可以更好地确定他不应再访问该“旧”网站。

<?php
Header( "HTTP/1.1 301 Moved Permanently" ); 
Header( "Location: http://www.new-url.com" ); 
?> 

答案 1 :(得分:1)

您提供的代码段是指page1.php可能执行某些代码后跟header('Lodation: http://www.example.com/page2.php');然后page2.php执行某些代码后跟header('Location: http://www.example.com/page3.php');等问题。这是非常对用户体验不利,也不太适合管理代码。

如果您真正需要重定向用户(301重定向可能是最常见的),使用header是完全可以接受的。

答案 2 :(得分:0)

这是基于PHP的重定向的可接受方法。如果您可以在PHP脚本执行之前完成重定向,那么您应该 - 通过.htaccess或服务器级别别名。

查看header上的手册:http://php.net/manual/en/function.header.php

答案 3 :(得分:0)

避免在内部使用header()总是明智的,因为有时标题已被调用。 JavaScript重定向绝对精美,并在许多Web应用程序中系统地使用。浏览器和搜索引擎不区分或不喜欢JavaScript重定向。一个简单的例子:

<?php echo '<script type="text/javascript">window.location.href="index.php"</script>'; ?>

或使用变量:

<?php echo '<script type="text/javascript">window.location.href="' . $page . '"</script>'; ?>

答案 4 :(得分:-2)

只需使用

header("Location: http://www.example.com");