как считать время модификации (mtime) mod_rewrite - PullRequest
1 голос
/ 27 января 2012

Можно ли считать время модификации (mtime) файла mod_rewrite?

Что я хочу сделать, это:

  • при доступе к '* .html':
    • вернуть '* .html', если он существует и новее, чем '* .html.eruby'.
    • переписать в '* .html.eruby', когда '* .html' несуществует или старше '* .html.eruby'.

мой .htaccess:

## inhibit direct access to *.eruby
RewriteRule \.eruby$ - [R=404,L]

## rewrite *.html into *.html.eruby when *.html.eruby exists
## (TODO: rewrite only when *.html.eruby is newer than *.html)
RewriteCond %{REQUEST_FILENAME}.eruby -s
RewriteRule ^(.*)$  $1.eruby

1 Ответ

1 голос
/ 27 января 2012

Конечно, есть решение. Я продаю это 100 000 000 $ (цена близкого друга). Шучу.

Чтобы решить эту проблему, используйте директиву RewriteMap, которая выполняет внешний «фильтр». Смотрите здесь . С сайта, с акцентом на то, что вы можете посмотреть:

Программа внешнего перезаписи

MapType: prg, MapSource: путь файловой системы Unix к действительному обычному файлу. Здесь источником является программа, а не файл карты. Для его создания вы можете используйте язык по вашему выбору , но результат должен быть исполняемым программа (объектный код или скрипт с волшебным трюком '#! / path / to / интерпретатор' в первой строке).

Эта программа запускается один раз, когда запускается сервер Apache, и затем связывается с механизмом перезаписи через его стандартный ввод и стандартный вывод файл-ручки.

Итак, мой совет: создайте очень простую программу на python, которая сравнивает временные метки двух файлов.

См. здесь для примера в Perl .

...