Хобрук: Ваш путь к мастерству в программировании

Nginx переписывает путь к местоположению

Есть ли способ добавить перезапись, которая будет динамически устанавливать местоположение/путь к файлу?

Вот из конфига nginx:

server {
   root /media;
   server_name media.domain.com;
   location / {
       autoindex off;
 }

У меня есть изображения с именами типа "e9m7L4_1.jpg", которые хранятся в каталоге в соответствии с первыми 6 буквами/цифрами имени файла, например:

e9m7L4_1.jpg (хранится в)-> e/9/m/7/L/4/e9m7L4_1.jpg

km40lj_1.jpg (хранится в)-> k/m/4/0/l/j/km40lj_1.jpg

В настоящее время я могу получить к нему доступ следующим образом:

http://media.domain.com/e/9/m/7/L/4/e9m7L4_1.jpg

Есть ли способ переписать местоположение, используя имя файла, переданное в nginx, чтобы к нему можно было получить доступ, как это, без длинного пути/префикса каталога: http://media.domain.com/e9m7L4_1.jpg

Спасибо

29.03.2016

  • Все ли файлы на этом сервере хранятся таким образом? 29.03.2016
  • @AlexeyTen да, все на поддомене медиа 29.03.2016

Ответы:


1

Вы можете попробовать это:

server {
    server_name media.domain.com;
    root /media;
    location / {
       rewrite ^/((.)(.)(.)(.)(.)(.).+)$ /$2/$3/$4/$5/$6/$7/$1 break;
    }
}
29.03.2016
Новые материалы

Шлюз с лицензией OSS, совместимый с Apollo Federation v2, появится в WunderGraph
Сегодня мы рады сообщить, что мы сотрудничаем с поддерживаемой YC Tailor Technologies, Inc. для внедрения Apollo Federation v2. Реализация будет лицензирована MIT (Engine) и Apache 2.0..

Это оно
Ну, я официально уволился с работы! На этой неделе я буду лихорадочно выполнять последние требования Думающего , чтобы я мог сосредоточиться на поиске работы. Что именно это значит?..

7 полезных библиотек JavaScript, которые вы должны использовать в своем следующем проекте
Усильте свою разработку JavaScript Есть поговорка «Не нужно изобретать велосипед». Библиотеки — лучший тому пример. Это поможет вам написать сложные и трудоемкие функции простым способом...

Базовое руководство по переносу концепций обучения в глубокое обучение
Обзор По мере того, как машинное обучение становится все более мощным и продвинутым, модели, обеспечивающие эту расширенную возможность, становятся все больше и начинают требовать огромного..

C в C.R.U.D с использованием React-Redux
Если вы использовали React, возможно, вы знакомы с головной болью, связанной с обратным потоком данных. Передача состояния реквизитам от родительских компонентов к дочерним компонентам может..

5 обязательных элементов современного инструмента конвейера данных
В цифровом мире предприятия используют конвейеры данных для перемещения, преобразования и хранения огромных объемов данных. Эти конвейеры составляют основу бизнес-аналитики и играют..

Случай использования npm3 вместо npm2 для разработки библиотеки
Некоторое время назад я создал библиотеку на NodeJS, чтобы упростить рендеринг на стороне сервера и клиента. Он использует React и React Router для отображения соответствующего HTML на веб-сайте...