繁体   English   中英

.htaccess根据时间戳提供index.html / index.php的方式

[英].htaccess way to serve index.html/index.php based on timestamp

假设我有一个简单的脚本( 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来说“如果文件早于一个小时,请执行操作”。

我不需要任何解决方法或其他类型的缓存/服务静态文件。 出于好奇,我对这种情况感到困惑。

您身边的任何建议都表示赞赏(并感谢您的宝贵时间)。

无论访问者是否访问您的网站,我都会设置一个每小时运行一次的Cron Job。

http://www.thesitewizard.com/general/set-cron-job.shtml

0 * * * * wget -O - -q http://www.website.com/cron.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM