5

因此,经过大量帮助和研究后,我终于能够通过 .htaccess 文件获得 301 重定向,但我注意到,除非我真的在浏览器上点击“刷新”,否则它不会重定向页面,因为只需读取缓存的站点.

我试过关闭所有浏览器,插入 .htaccess 文件,然后打开一个新的浏览器,但它仍然会打开缓存的站点。我会大胆猜测大多数客户不会费心刷新页面,如果他们不这样做,这将需要很长时间才能发现确实有一个新页面!

有任何想法吗?谢谢!

-卡尔

编辑:我刚刚想到在我们当前的主页上放置一个链接,上面写着“点击这里查看我们的新网站!” 并且该链接将刷新页面,进而将 301 重定向启动。任何人都可以想到这样做的任何负面影响吗?

4

2 回答 2

2

卡尔,

我发现检查缓存标头的最佳方法是Live HTTP Headers firefox add on .

这是关于您的主页的内容:

HTTP/1.x 200 OK
Date: Fri, 06 Nov 2009 15:16:57 GMT
Server: Apache
Last-Modified: Mon, 12 Oct 2009 16:52:05 GMT
Etag: "85dcc1-1386-4ad35eb5"
Accept-Ranges: bytes
Content-Length: 4998
Keep-Alive: timeout=10, max=99
Connection: Keep-Alive
Content-Type: text/html

如上所述,etag 是问题所在。一个快速(unixy)的修复可能是:find /var/www/htdocs -type f|xargs touch这将改变你 www 目录中每个文件的修改时间。

但是,它确实取决于您的 apache 实例如何配置为生成 etag 值。这是关于使用 Apache 设置缓存的一个很棒的小方法

至于您添加链接的建议,我认为这不会奏效。您不能强制浏览器远程刷新页面,并且如上所述,问题在于 etag,您的解决方案不会更改。

于 2009-11-06T15:26:29.893 回答
0

稍等片刻。大多数用户的缓存将在几个小时内过期,除非您将服务器设置为使用异常长的缓存提示来服务页面。

如果您现在正在提供页面,您可以设置标题,以便客户端不会缓存它。请参阅此问题:

告诉浏览器不要缓存的正确方法是什么?

于 2009-11-05T20:19:18.323 回答