我有一个网站,由于准备不足的apache conf文件已指示用户缓存未来几年的网站URL。因此,当一个人访问该网站时,他们通常不会尝试甚至要求该网页。浏览器只是从缓存中加载HTML。如何强制浏览器刷新网页的缓存版本
本网站即将获得重大更新,我希望用户能够看到它。有没有办法强制用户实际重新请求网页?我担心,对于一些用户,除非他们碰巧按F5键,否则他们可能会看到旧网页数年。
我有一个网站,由于准备不足的apache conf文件已指示用户缓存未来几年的网站URL。因此,当一个人访问该网站时,他们通常不会尝试甚至要求该网页。浏览器只是从缓存中加载HTML。如何强制浏览器刷新网页的缓存版本
本网站即将获得重大更新,我希望用户能够看到它。有没有办法强制用户实际重新请求网页?我担心,对于一些用户,除非他们碰巧按F5键,否则他们可能会看到旧网页数年。
我认为没有办法做到这一点。如果他们从未联系过你的服务器,那么你无法对此做任何事情。
使用不同的URL。如果你的网站的主要入口点(如主索引文件)被缓存,那么你被搞砸了......也许你应该注册另一个域名?
有几个选项来实现这一 首先 在部分添加meta标签:
<meta http-equiv="pragma" content="no-cache" />
基本上浏览器将不缓存的页面。
另一种选择是设置会话,这将每次他们去时强制浏览到一个新的会话,从而使浏览器从服务器而不是缓存获取页面
<?php
session_start();
$_SESSION = array();
session_destroy();
?>
您可以添加这对你的网站几天,然后删除。 我真的不知道这是否会做,但也许你会发现它的每一个资源的有用
变更网址,
这是有争议的,如果你的“重大更新”只是在少数(2或3)星期,你只需要重新配置你的apache conf(html没有太多未来的东西 - 只有资产和内容很可能永远不会改变)。火狐缓存默认大约为50MB,并不是很多,因为图像也被缓存,现代网站有很多内容。
并不完美 - 但这就是我会做什么 - 当我不想或不能改变的URL;)
这是我希望会发生的事情。我几周前更新了apache conf以删除缓存。看来真的没有办法强制刷新。 – Chris 2009-08-01 12:38:59
我意识到这个问题是很老了,但我有一个可行的解决方案:
当然你可以强制新的URL来避免常见的缓存(不是长期的)......
iee
然而,在这样的情况下(以前编辑apache.conf长时间缓存),因为你不能改变域的搜索引擎优化的目的,有一个'粗糙的黑客',你可以使用这将最大限度地减少对搜索引擎的影响:
复制您的索引页(即index.php)到新页面(即,index_new.php)并编辑httpd.conf(或等效的),以便DirectoryIndex是新页面。然后,只需删除或移动旧页面,理论上应始终重定向到新页面。
I.e.在Debian/Ubuntu中:
cd /var/www
cp index.php index_new.php
sudo vim /etc/apache2/sites-enabled/000-default
<Directory /var/www/>
...
DirectoryIndex index_new.php
</Directory>
mv index.php index_old.php
sudo service apache2 restart
然后你去了。
年后很晚,但它可能会帮助某人在路上:如果您有任何 JavaScript文件未缓存到未来几年(即如果您有任何方式在缓存的站点上运行新的js ),添加一些js,将以编程方式清除缓存。一旦配置修复和/或更新完成,请删除缓存清除js。
该网站在搜索引擎中排名第一;不同的网址在我们的搜索引擎优化惩罚案例中不起作用 – Chris 2009-07-30 16:38:09
您可以通过添加URL参数(如时间戳)将其设为不同的网址:?new =。这不会搞砸SEO。 –
Julien
2010-03-08 17:48:24