У меня есть программа, которая создает оптимизированные версии изображений, загружаемых в /картинки/
папка на веб-сервере. Он проходит по подпапкам и в каждой из них создает .оптимизировано
папка с оптимизированной версией, если он как минимум на определенный размер меньше оригинала. Моя цель — проверить, существует ли такая оптимизированная версия, обслуживать ее, если она существует, и обслуживать оригинал в противном случае (в некотором смысле, например, как gzip_static
обслуживает версию файла .gz, если она существует).
Я использую NGINX в качестве прокси-сервера перед Apache, поэтому, хотя я привык решать подобные проблемы с помощью htaccess, я пытаюсь сделать это изначально в NGINX, чтобы серверу не приходилось передавать запрос Apache. В .htaccess
, я мог бы сделать что-то вроде этого:
RewriteCond %{REQUEST_FILENAME} ^(/images/(?:.*/)?)(.*?)$ [ИЛИ]
RewriteCond $1.optimized/$2 -f
RewriteRule .* $1/.optimized/$2 [L]
Есть ли хороший способ справиться с этим непосредственно в NGINX? Большинство подобных случаев использования, которые я нашел, сохраняли все кэшированные/оптимизированные файлы в одной кэшированной папке, в отличие от структуры, которую я описываю.