Азбука/otechnik
Расположение исходных файлов
Расположение файлов книг в каталоге проекта:
assets/books/N/work.fb2 assets/books/N/original.pdf
или
assets/books/N/original.djvu
Расположение сгенерированных файлов:
assets/build/files/N/out.(fb2|mobi|pdf|epub)
также есть произвольные файлы:
assets/uploads/файлы
Редиректы в nginx, которые сейчас имеются
1.
/otechnik/assets/build/files/([0-9]*)/out\.(.*) ->/otechnik/books/download/$1.$2
(к примеру, пересылает /otechnik/assets/build/files/12000/out.pdf в https://azbyka.ru/otechnik/books/download/12000.pdf)
2.
/otechnik/assets/books/([0-9]*)/(.*) -> /otechnik/books/original/$1/$2
(к примеру, пересылает /otechnik/assets/books/12000/test в https://azbyka.ru/otechnik/books/original/12000/test)
3.
/otechnik/assets/uploads/books/([0-9]*)/(.*) -> /otechnik/books/original/$1/$2
(к примеру, пересылает /otechnik/assets/uploads/books/12000/test в https://azbyka.ru/otechnik/books/original/12000/test)
Здесь задействованы целевые пути
/otechnik/books/download /otechnik/books/original
которые передаются в php для возврата с флагом X-Accel-Redirect
Правила в nginx по отдаче файлов для загрузки пользователем: 4.
/otechnik/dl/([0-9]*)/(.*)\.(fb2|mobi|epub|pdf|djvu) -> /otechnik/files/$1/out.$3
(к примеру, по запросу /otechnik/dl/12000/test.fb2 отдаёт из пути /otechnik/files/12000/out.fb2, добавив заголовок Content-Disposition)
5.
/otechnik/dl/original/([0-9]*)/(.*)\.(fb2|mobi|epub|pdf|djvu) -> /otechnik/files/original/$1/$2.$3
(к примеру, по запросу /otechnik/dl/original/12000/test.pdf отдаёт из пути /otechnik/files/original/12000/test.pdf, добавив заголовок Content-Disposition)
Прямая отдача файлов через nginx
6. Файлы при обращении к /otechnik/files/ отдаются из каталога azbyka_otechnik/www/azbyka.ru/otechnik/assets/build/files/
7. Файлы при обращении к /otechnik/files/original/ отдаются из каталога azbyka_otechnik/www/azbyka.ru/otechnik/assets/books/
Обработка ссылок для отдачи оригиналов
По ссылке /otechnik/books/original/[ID]-[наименование труда].pdf на уровне php определяется труд и отдается заголовок x-accel-redirect на труд с указанием пути /otechnik/dl/original/[ID]/[имя оригинала из БД].pdf
Обработка пересылки на труд по его id
Ссылки вида
https://azbyka.ru/otechnik/books/12908
пересылают на труд с соответствующим ID