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

Могу ли я перенаправить на самый новый файл в каталоге, используя .htaccess?

Я хочу создать правило .htaccess для ситуации, как показано ниже:

Возможно ли что-то подобное при использовании .htaccess? Я знаю, что могу проверить, существует ли файл с помощью RewriteCond, но не знаю, можно ли перенаправить на самый новый файл.

Для этого нет чистого решения mod_rewrite. Самое близкое может быть использование RewriteMap чтобы указать на скрипт, который всегда возвращает самый новый файл в /images/some. Такой простой скрипт всегда будет выводить последний файл в /images/some независимо от ввода:

#!/bin/bash

while read in
do
    find /path/to/images/some/ -maxdepth 1 -type f -exec ls -t1 {} + | head -1 | sed -e 's|/path/to/images/some/||g'
done

И если вы настроите карту в конфигурации сервера или vhost (карты не могут быть объявлены в htaccess):

RewriteMap latest prg:/path/to/script.sh

И вы можете вызвать его так:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?images/some/(.*)$ /images/some/${latest:$1} [L,R=301]

Конечно, это не очень эффективно, и вам лучше просто написать скрипт маршрутизации php и направить все на него, а не на карту.