更新整个网站的最佳做法是什么?

我有一个网站是一个现有的准备上线的完整重做。 我无法find足够的信息来成功转换到新网站。

我可以从指向public_dev的子域访问新的站点。 理论上我可以重命名public_html ,然后将public_dev重命名为public_html 。 问题是来自当前网站的内容将被caching

基本上我正在寻找一种方法来要求浏览器不使用它的caching,如果它没有去过特定date的网站。

我应该在PHP中使用.htaccess还是header()

为什么不采取皮带和支撑的方法,并使用两者。 您也可以在内容头部分中设置元标记(使用包含文件进行网站范围的更新)

 <META HTTP-EQUIV="Cache-Control" CONTENT="max-age=0"> <META HTTP-EQUIV="Expires" CONTENT="Tue, 01 Jan 1980 1:00:00 GMT"> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 

如果您是直接从PHP文件提供站点,那么您可能不会有任何caching问题(除非已经实施了某种forms的cachingpipe理)。 但是,样式表,图像和其他文件仍然可以被浏览器caching。

你最好的办法是通过.htaccess来控制你的caching,并且在你打算推出你的网站之前,把所有的东西都设置为过期。.htaccess – 如何设置过期date? 。

同时使所有caching无效的唯一可靠方法是更改​​浏览器实际看到的URL。 所以你的http://example.com/index.php变得像http://example.com/2/index.php 。 所有的静态文件也需要有新的URLpath。

这就是为什么Google和其他人在基于MD5散列的所有静态资产的代码中构build“资产重命名”过程。 通过这种方式,您可以将caching控制设置为10年,确保任何对/03b/c49/ef94589d54390435ab0943cd212.png的请求将始终返回准确的内容,并且在用“较新”资源replace该URL时将永远不会请求该URL 。 但是这需要很多工作来设置,所以使用上面提到的新的根path的相对URL是比较常见的。