Я хочу создать правило .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 и направить все на него, а не на карту.