[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кеш файлов на уровне Апача
Iskatel13
Необходима организация переадресации на уровне сервера...
Допустим, юзер пишет адрес site.ru/file.cache.

Кэш-файл может отсутствовать или же быт устаревшим, если кеш невалидный, то переадресовать на скрипт.

Вот что я нашел для прописания в .htaccess:

RewriteCond %{REQUEST_FILENAME}   !-s
RewriteRule ^file\.cache$ file.php [L]


Т.е. если файла не существует или он имеет нулевой размер, то происходит переадресация на скрипт, генерирующий кэш.

Но я нигде не нашел как узнать о запрошенном файле время последнего изменения и учесть его в условии.



Спустя 8 минут, 14 секунд (28.03.2010 - 15:10) glock18 написал(а):
Iskatel13
насколько я знаю, на уровне mod_rewrite сделать это нельзя.

Спустя 30 минут, 57 секунд (28.03.2010 - 15:41) Guest написал(а):
Да уж... Но есть иной вариант. А если в имени файла будет указана дата и время создания увеличенная на время валидности кэша?

file-YYMMDDHHMM.cache

Тогда можно будет через регулярки выловить эти цифры и сравнить с текущей датой. Тока помогите внести в пример изменения

Спустя 2 часа, 38 минут, 54 секунды (28.03.2010 - 18:20) Iskatel13 написал(а):
Все работает! Только вот одна проблема:

#RewriteRule ^1-([0-9]{10,12})\.cache$ - [C,E=DATE:$1]
#RewriteCond %{REQUEST_FILENAME} !-s [OR]
#RewriteCond %{ENV:DATE} <%{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN}
#RewriteRule ^1-([0-9]{10,12})\.cache$ 1.php [L]


однако обнаружил что переменные сервера вида %{переменная} с правой стороны RewriteCond от "<",">","=" почему то не действуют. Ставил цифру вместо - работало идеально! Нигде не находил информации, что переменные можно только с левой стороны использовать. Но как блин сравнить 2 переменных тогда...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.