Php 重定向用户及其如何影响“后退”按钮的使用
我一直在想,假设用户从URL开始:Php 重定向用户及其如何影响“后退”按钮的使用,php,redirect,http-headers,http-redirect,Php,Redirect,Http Headers,Http Redirect,我一直在想,假设用户从URL开始: http://www.foo.com/ 然后他们点击一个链接发送他们说: http://www.foo.com/some-page.php 但在这个脚本中,您可以: header('Location: http://www.foo.com/another-age.php'); 现在,如果用户在浏览器中按下后退按钮,会发生什么情况?是否将它们发送回http://www.foo.com/some-page.php然后再次重定向到http://www.foo.
http://www.foo.com/
然后他们点击一个链接发送他们说:
http://www.foo.com/some-page.php
但在这个脚本中,您可以:
header('Location: http://www.foo.com/another-age.php');
现在,如果用户在浏览器中按下后退按钮,会发生什么情况?是否将它们发送回http://www.foo.com/some-page.php
然后再次重定向到http://www.foo.com/another-age.php
使“后退”按钮无效,还是将其重定向回http://www.foo.com/
我知道我可以测试一下,但我认为有些浏览器可能会有不同的行为,我想知道它应该如何工作?这会使后退按钮毫无用处。 它会将它们重定向回 “”
(至少根据我的简单经验)如果您想在浏览器中尝试,下面的脚本将创建三个您可以使用的文件
<?php
$dir = '/tmp/';
foreach(
array(
'foo.php' => '<a href="bar.php">Go to bar.</a>',
'bar.php' => '<?php header("Location: baz.php");',
'baz.php' => '<h1>Hello I\'m Baz</h1>'
)
as $name => $contents
) {
file_put_contents($dir . $name, $contents);
}
这将精确重定向到您在header函数中定义的路径。您也可以将其重定向到主页,您可以使用“上一步”按钮访问路径。这取决于您和您在代码中的使用方式:header()用于发送原始HTTP头(有关mor详细信息,请转到)。当我想将用户重定向到web应用程序中的特定页面时(在用户完成特定功能后),我使用它
据我所知,使用header(),如果没有时间重定向,浏览器不会启用back按钮
以秒为例:
header( "refresh:5;url=http://stackoverflow.com" );
header( "refresh:5;url=wherever.php" );
以其他形式使用,如您所说,如果单击链接转到:
http://www.foo.com/some-page.php
使用heades(),这意味着链接指向whavirer.php,其标题代码指向some-page.php。这样,后按钮将始终可用。另一种方法是使用if或调用特定函数
另一方面,如果您不想在用于浏览网页的任何浏览器中使用任何保存缓存,或者不想解释如何工作以及如何禁用,那么这里有一个很好的帖子(有不同脚本语言的示例):
使用head()PHP的示例:
W3C发布的一篇名为is的帖子显然指出:除非重定向来自“刷新”技术(与HTTP重定向相反),否则浏览器将无法捕获重定向器
引用那篇关于HTTP重定向的文章
另一方面,“HTTP重定向”的作用更直接,因为它是在另一层中完成的。当用户代理(即浏览器或验证器)首次联系服务器并请求文档时,服务器本身(已配置为将文档重定向到另一个地址)会向用户代理答复,它应该改为查看新地址
专门讲述/some page.php
的内容被移动到/另一个page.php
(我有点认为它们也可以说是“相同的”)。此后,根据问题,浏览器后退按钮将直接转到foo.com
关于这个函数
header('Location: http://www.foo.com/another-page.php');
它使用位置
标题,您可以从规范中了解它
至于测试,您可以尝试任何URL缩短器,如goo.gl。它实现301重定向。使用“浏览器后退”按钮访问URL后,将无法返回缩短的URL。或者直接去fb.com,你会被重定向到facebook.com,并且肯定不会回到以前的URL(如果你不是真的隐藏它,那又有什么意义?)
另一种将重定向程序推送到浏览器历史记录的方法是JavaScript
window.location='http://www.example.com/'
@你没读我问题的最后一句吗?:)@布雷特:你在考虑php重定向还是其他的redirects@KishanKumarPHP重定向:)感谢您运行这些测试-我想我只是想知道这是否是标准行为,因此我的问题,而不是自己运行这样的测试:)谢谢您的精彩帖子。这正是我想要的-谢谢!
window.location='http://www.example.com/'