Могу ли я перенаправить на новый file в directory с помощью .htaccess?
Я хочу создать правило .htaccess для ситуации, как показано ниже:
- У меня есть ссылка на file: http://something.com/images/some/image_001.png
- Если этот file не существует, я хочу перенаправить на новый file в / images / some directory
Возможно ли это с помощью .htaccess? Я знаю, что могу проверить, существует ли file с RewriteCond, но не знаю, можно ли перенаправить его в самый новый file.
- Apache 2.2 переписывает с помощью Alias работает только в режиме
- Запросы Lighttpd и OpenCart GET с помощью mod_rewrite
- Lazy Conditional Rule ничего не делает! Зачем?
- Apache - redirect на загрузку
- mod_rewrite REQUEST_FILENAME не содержит абсолютный path
- Git Smart HTTP (S) с redirectм URL, не работает
- mod_rewrite для обслуживания статического fileа на основе определенной строки requestа с помощью mod_proxy
- Вопросы по mod_rewrite и Apache
- Apache RewriteCond: вставлять строку в URI между группами соответствия регулярных выражений
- Apache - mod rewrite с вопросом виртуального хозяина
- Можно ли сделать Apache, чтобы не отправлять ответы на конкретные requestы?
- Заkeyение SSL с помощью mod_rewrite
- Преобразование .htaccess в nginx
Для этого less чистого решения mod_rewrite. Самое близкое может быть использование RewriteMap
чтобы указать на скрипт, который всегда возвращает самый новый file в /images/some
. Такой простой скрипт всегда выводит последний file в /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
И если вы настроите карту в конфигурации serverа или vhost (maps не могут быть объявлены в 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 routing и направить все на это вместо maps.