Настройка rewrite на nginx / lighthttpd?

Здравствуйте, есть задача скачивать файлы с сервера, который не совсем и веб-сервер и довольно прилично нагружен всякими штуками. В качестве веб-сервера был выбрай лайти (честно говоря, не знаю почему, можно без проблем заменить на nginx, например).


Мне нужно по адресу 123.45.67.89:8888/10/filename.ext отдавать на скачивание файл, лежащий в /home/user/some/folder/10/subfolder/filename.ext. Притом, только из этой папки и не выше уровнем

Выделенная жирным цифра 10 — это какой-то неизвестный заранее номер, повторяется в адресе файла в указанном месте. Генерить кучу статических правил нельзя, ставить пхп/питон — тоже. Есть разве что перл, но я его совсем не знаю.


Возможно ли решить эту задачу средствами веб-сервера, или придется писать индесный скрипт, который это делает?
  • Вопрос задан
  • 2929 просмотров
Пригласить эксперта
Ответы на вопрос 3
opium
@opium
Просто люблю качественно работать
исключите из пути сабфолдер, он не нужен, или добавть в урл сабфолдер, костыли в данном случае не оправданы.
Ответ написан
frol
@frol
Линуксоид
nginx:

location ~ ^/(\d+)/(.+)$ {
alias /home/user/some/folder/$1/subfolder/$2;
}

PS не уверен на счёт \d, если на заработает попробуйте [0-9] вместо \d.
Ответ написан
Комментировать
majesty
@majesty
lighttpd:

server.document-root = "/home/user/some/folder"
url.rewrite-once = (
"^/([0-9]+)/(.+)$" => "/$1/subfolder/$2"
)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы