Apache .htaccess 时间戳

Apache .htaccess 时间戳

我正在尝试做一些缓存机制,在 php 中创建缓存文件,其名称如下:test_page_20110122_23.html (test_page_[php date('Ymd_G)].html)

计划是不使用 php 来提供这些文件,严格使用 apache(或更高版本的 nginx)。但为了做到这一点,我必须编写一个包含当前日期和时间变量的重写规则,例如:

RewriteCond /cache/%{REQUEST_FILENAME} _ {Ymd}{G} .html -f
重写规则 ^(.*)$ /缓存/$1
{Ymd}_{G}.html [L]

我唯一的问题是如何在 .htacces 中获取这些时间变量

答案1

你可以在 apache 中使用 mod_rewrite 来做到这一点

RewriteCond /cache/%{REQUEST_FILENAME}_%{TIME_YEAR}%{TIME_MONTH}%{TIME_DAY}_%{TIME_HOUR}.html -f
RewriteRule ^(.*)$ /cache/$1_%{TIME_YEAR}%{TIME_MONTH}%{TIME_DAY}_%{TIME_HOUR}.html [L]

答案2

除了 lynxman 的回答之外:

如果%{TIME_MONTH}不起作用,请尝试%{TIME_MON}

RewriteCond /cache/%{REQUEST_FILENAME}_%{TIME_YEAR}%{TIME_MON}%{TIME_DAY}_%{TIME_HOUR}.html -f
RewriteRule ^(.*)$ /cache/$1_%{TIME_YEAR}%{TIME_MON}%{TIME_DAY}_%{TIME_HOUR}.html [L]

从:https://craym.eu/tutoriels/referencement/variables_url_rewriting.html

相关内容