用户在页面上1.php
。在 sumbit 表单重定向到2.php
. 在这里,如果使用浏览器后退按钮,我想重定向到 page 3.php
。
怎么样:
- 1.php [提交表单] =>
- 3.php [标头(位置:2.php) ] =>
- 2.php
你没有。这超出了网页的控制范围,这是一件好事。
如果一个网站可以通过这样的浏览器控制,我会感到不安,将我重定向到当我按下“返回”时我没有去的页面。我的第一直觉是做病毒扫描或类似的事情,因为我认为有些地方很不对劲。你的用户会有什么反应?
编辑:您使用建议的解决方案编辑了问题:“怎么样:1.php [提交表单] => 3.php [header(location:2.php)] => 2.php”
如果您使用 HTTP 标头执行此操作,某些浏览器可能会将其合并到历史记录中的单个页面中。但是,如果您通过 JavaScript 重定向来执行此操作,它将起作用,因为那样浏览器将不够智能以合并它们。您还需要跟踪状态(用户是提交表单还是刚回来?)并且您需要确保Cache-Control
正确设置标题(no-cache
)以便浏览器不会缓存 3.php,因为我想根据您是从 1.php 提交表单还是从 2.php 返回表单,该页面看起来应该不一样。
但是,如果您在中间根本没有 3.php,并且Cache-Control
在 1.php 上进行了相同的状态跟踪,那么您将获得相同的结果,因此您可能根本不需要 3.php。
使用会话。将您最后访问的页面保存在会话变量中,一旦用户按下后退按钮,您的代码应该读取该变量并重定向。
但不要指望历史和东西。
此外,您可能想尝试 history.js(即使我自己仍在寻找该解决方案)。