Здравствуйте!
Задача в следующем:
Поймать по регулярке адрес, по регулярке его превратить в путь к файлу. Если файл есть на диске, то отдать его клиенту, если нет, то передать запрос в 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
Испробовал кучу вариантов, но так толком ничего и не добился. Помогите, пожалуйста.
Задача в следующем:
Поймать по регулярке адрес, по регулярке его превратить в путь к файлу. Если файл есть на диске, то отдать его клиенту, если нет, то передать запрос в 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
Испробовал кучу вариантов, но так толком ничего и не добился. Помогите, пожалуйста.