Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проверка файла после изменения адреса ngnix

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
haZe
Отправлено: 02 Июня, 2015 - 10:15:55
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Здравствуйте!

Задача в следующем:
Поймать по регулярке адрес, по регулярке его превратить в путь к файлу. Если файл есть на диске, то отдать его клиенту, если нет, то передать запрос в index.php

CODE (php):
скопировать код в буфер обмена
  1. #перехватываю запрос
  2. location = ^/news.*\.jpg$ {
  3. #превращаю запрос в путь к файлу
  4.     rewrite ^/news/[\w\-_]+/([\w\-_]+)\-(\d+x\d+x[p|i])-(\d+)\.jpg$ /data/cache/news/$3/$1-$2\.jpg break;
  5. #проверяю есть ли он на диске, если нет, то отдаю в index.php
  6. }
  7.  
  8. location = ^/data/cache/news/.* {
  9. try_files $uri /index.php;
  10. } 


Например алгоритм такой:
1. Получаю запрос: /news/test/test-100x100xp-10.jpg
2. Сработал location
3. Этот запрос преобразовался в /data/cache/news/10/test-100x100 xp.jpg
4. Проверка файла на наличие на диске
4.1 Файл есть - отдаем клиенту
4.2 Файла нет - отдаем обработку в index.php

Испробовал кучу вариантов, но так толком ничего и не добился. Помогите, пожалуйста.
 
 Top
DeepVarvar Супермодератор
Отправлено: 02 Июня, 2015 - 10:52:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Заверни пых в именованый локейшн и повесь его на фалбек от 404.
 
 Top
haZe
Отправлено: 02 Июня, 2015 - 11:25:15
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




DeepVarvar пишет:
Заверни пых в именованый локейшн и повесь его на фалбек от 404.

Спасибо! Вы не могли бы ответить более развернуто. Как это сделать в апаче я понимаю, а вот с ngnix работаю впервые. Тут совсем другая логика какаято. Я запутан. Недовольство, огорчение
 
 Top
MiksIr
Отправлено: 02 Июня, 2015 - 13:27:44
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


CODE (text):
скопировать код в буфер обмена
  1.  
  2. location /news/test/ {
  3.    location ~ /([\w\-_]+)\-(\d+x\d+x[p|i])-(\d+)\.jpg$ {
  4.         alias /path/on/disk/data/cache/news/$3/$1-$2.jpg;
  5.         try_files $uri /index.php;
  6.    }
  7. }
  8.  

(Отредактировано автором: 02 Июня, 2015 - 13:28:35)



-----
self-banned
 
 Top
LIME
Отправлено: 02 Июня, 2015 - 14:29:02
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




https://youtu[dot]be/fcG-7k20oG8
почему надо делать так как MiksIr
ТС будет полезно
 
 Top
haZe
Отправлено: 02 Июня, 2015 - 16:07:50
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Ура! Победа! Два дня с этим маялся! Спасибо огромное!!!
(Добавление)
LIME пишет:
https://youtu[dot]be/fcG-7k20oG8
почему надо делать так как MiksIr
ТС будет полезно


Спасибо! Я посмотрел, очень полезно!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB