dmitrydeco
@dmitrydeco

Как составить регулярное выражение для nginx?

Здравствуйте. Поставили такую задачу:
по урлу site.ru/download/{base64} начать скачивать .pdf файл с удалённого сервера.
Стоит Nginx на сервере. Человек заходит по ссылке site.ru/download/{base64}, из {base64} я беру ссылку и название файла и ставлю
header("X-Accel-Redirect: /downloadfile/$link/$name");
. По сути вот что должно получиться:
header("X-Accel-Redirect: /downloadfile/site2.ru/a1/b2/c3/d4.pdf?code=1234/your_pdf.pdf");

Как мне написать location, чтобы передать в последующем в proxy_pass ссылку на скачивание, и чтобы pdf именно скачался, а не открылся?
Я пробовал разные варианты
location = /downloadfile/(.*)/(.*) {...}, но в итоге всё равно location не работает. Подскажите, как написать? Спасибо!
  • Вопрос задан
  • 2340 просмотров
Пригласить эксперта
Ответы на вопрос 1
egor_nullptr
@egor_nullptr
location ~ ^/downloadfile/ {
    proxy_pass ...
}


Чтобы файл именно скачивался нужен заголовок
Content-Disposition: attachment;filename=your_pdf.pdf
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы