每当我按下IE的后退按钮时,浏览器就会显示消息"网页过期"。
我有一个注册页面是reg.php,现在我在save_reg.php中保存了数据,然后按下后退按钮并显示消息"网页过期"。
我尝试了以下代码:
header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: post-check=0, pre-check=0",false);
session_cache_limiter("must-revalidate");
但消息保持
这意味着您要返回的页面是POST请求。这与标题完全无关。
摆脱这种情况的最简单方法是在开始时使用以下代码:
session_start();
if( $_POST) {
$_SESSION['postdata'] = $_POST;
header("Location: ".$_SERVER['REQUEST_URI']);
exit;
}
if( $_SESSION['postdata']) {
$_POST = $_SESSION['postdata'];
unset($_SESSION['postdata']);
}
设置未来的到期日期:
header("Expires: ".date("D, d M Y H:i:s", time() + $desiredDuration)." GMT");
time
返回自Unix Epoch以来以秒为单位测量的当前时间,并将所需时间(以秒计)相加,然后使用date
函数对其进行格式化。
我使用解决了这个问题
BrowserMatch MSIE force-no-vary
在我的.htaccess文件中。Vary标头是由mod_rewrite生成的,ie无法很好地处理它。