Назад | Перейти на главную страницу

Отметка времени 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
RewriteRule ^ (. *) $ / Кеш / $ 1
{Ymd} _ {G} .html [L]

Единственная проблема, которая у меня есть, это как получить эти временные переменные в .htacces

Вы можете сделать это в 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]

В дополнение к ответу 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