假设我有一个简单的脚本 ( index.php
),它拉入一个远程页面,从中收集数据,进行一些格式化并保存一个新页面。index.html
然后根据通常的缓存/时间戳控制将此新页面 ( ) 提供给客户端。
因此,从本质上讲,它看起来可能是简化的:
<?
if ( filemtime('index.html')+3600 > strtotime('now') ) {
// collect_remote_stuff();
// save_new_index_html();
} else {
echo file_get_contents('index.html');
}
?>
这很好,它可以完成工作。但我不喜欢的是,对于这个简单的时间戳检查,必须在每个请求上运行 php 解释器。不要误会我的意思,这不是一个严重的性能问题,我只是不喜欢这个原理。
所以,我想用一些智能.htaccess
脚本来代替时间戳检查。我的梦想成就如下:
检查 index.html 是否超过一小时。如果是,请致电index.php。如果没有,请提供index.html。
作为 Apache 配置的新手,我先进行了一些谷歌搜索,然后深入研究了mod_expires
. 这并没有完全达到我想要的效果,但这是一个好的开始——我可以设置相对于文件最后一天修改的到期时间。但这不符合 index.html/index.php 条件,只满足“如果文件旧,则提供新文件”的场景。我还阅读了有关 Apache > 2.4 的 if/else 的信息,但并没有真正看到这里使用 mod_expires 说“如果文件超过一小时,请执行操作”的方式。
我不是在寻找任何解决方法或其他类型的缓存/服务静态文件。出于好奇,我对这种情况很感兴趣。
您的任何建议表示赞赏(并感谢您的时间)。