проверка файла после изменения адреса
AlexsnderS
nginx-forum at nginx.us
Mon Jun 1 16:19:39 UTC 2015
Здравствуйте!
Задача в следующем:
Поймать по регулярке адрес, по регулярке его превратить в путь к файлу. Если
файл есть на диске, то отдать его клиенту, если нет, то передать запрос в
index.php
#перехватываю запрос
location = ^/news.*\.jpg$ {
#превращаю запрос в путь к файлу
rewrite ^/news/[\w\-_]+/([\w\-_]+)\-(\d+x\d+x[p|i])-(\d+)\.jpg$
/data/cache/news/$3/$1-$2\.jpg break;
#проверяю есть ли он на диске, если нет, то отдаю в index.php
}
location = ^/data/cache/news/.* {
try_files $uri /index.php;
}
Например алгоритм такой:
1. Получаю запрос: /news/test/test-100x100xp-10.jpg
2. Сработал location
3. Этот запрос преобразовался в /data/cache/news/10/test-100x100xp.jpg
4. Проверка файла на наличие на диске
4.1 Файл есть - отдаем клиенту
4.2 Файла нет - отдаем обработку в index.php
Испробовал кучу вариантов, но так толком ничего и не добился. Помогите,
пожалуйста.
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,259310,259310#msg-259310
Подробная информация о списке рассылки nginx-ru