我已经编写了一个登录脚本,在您登录后重定向回索引页面,从而为登录用户重新加载索引页面,它只显示以前加载的索引页面。一旦登录脚本重定向它,新的Firefox 12更新不会重新加载索引页面。当处理脚本将Firefox重定向回已经加载的页面时,在我的网站中反复出现此问题。
我试过用PHP关闭缓存:
<?php
header( "Last-Modified: " . gmdate( "D, j M Y H:i:s" ) . " GMT" );
header( "Expires: " . gmdate( "D, j M Y H:i:s", time() ) . " GMT" );
header( "Cache-Control: no-store, no-cache, must-revalidate" );
header( "Cache-Control: post-check=0, pre-check=0", FALSE );
header( "Pragma: no-cache" ); ?>
并在.htaccess
中:
<filesMatch "\.(php)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</filesMatch>
任何人都可以解释为什么Firefox 12.0会这样做吗?它不会在其他浏览器中执行此操作。如何尽快解决?
感谢。
更新: 它在以前版本的Firefox和所有其他浏览器中运行良好。它所做的只是重定向回索引页面,它应该为新登录的用户重新加载,但它仍然显示原始主页。当您单击指向主页的链接时,它将为用户正确加载主页。
答案 0 :(得分:1)
从Firefox 11升级到12后,我注意到了同样的问题。除非我在每个请求中将随机字符串附加到URL,否则我的购物车将无法正常工作。
答案 1 :(得分:1)
只需设置
header("Cache-Control: no-cache");
之前
header("Location:".$url);
问候,丹尼尔
答案 2 :(得分:0)
使用javascript进行重定向:
<?php
$url = "/index.php";
echo "<script type='text/javascript'>
window.location='" . $url . "';
</script>";
?>
答案 3 :(得分:0)
有时php重定向工作更好w /
header( "Location: index.php" ) ;
header ("Content-Length: 0");
exit;
答案 4 :(得分:0)
我在其他帖子中看到的有关阻止FF缓存页面的有趣技巧。这是一个较旧的文档,但可能仍然适用:(https://developer.mozilla.org/en/Using_Firefox_1.5_caching),说FF不会缓存w / unload或onbeforeunload事件的页面。
如何添加无效的onbeforeunload事件:
<script>
window.onbeforeunload = function(){} //add onbeforeunload
</script>
答案 5 :(得分:0)
您应该为重定向网址添加时间戳:
http://yourdomain.com/index.php?time=0205122019
我认为这是一个缓存问题。