zona7o
@zona7o
Веб-разработчик

Какой location для nginx нужно написать, чтобы не учитывался trailing slash?

Вопрос решен.
Ответ: не забывать про приоритеты между location в nginx. Нужно было нужный реврайт расположить выше :)


В общем. Есть сервер в далекой стране на котором хранится статика (теперь).
И есть старое приложение, при котором статика хранилась в корне и пути в приложение отдавались в следующем виде:
/photo/2015-01-01/big-photo.jpg

Собственно, так-как теперь сервера локально не хранятся - пытаюсь сделать nginx-rewrite, чтобы при запросе
http://mysupersite.нет/photo/2015-01-01/bigphoto.jpg запрос уходил на http://tipacdn.яndex.нет/sitename/photo/2015-01-01....
Помогите, люди добрые.

Основной вариант, при котором почти все работает - это
location ~/photo/(.*) {
return 301 http://tipacdn.яndex.net/sitename$1;

Но в этом случае адрес с картинкой должен заканчиваться на / - что приводит не к совсем рабочему методу.

P.S. Вариант о переделке приложения рассматривается и уже учтен. Но сейчас интересует конкретно решение этого вопроса.

P.P.S. Что уже пробовал
location ~/photo/(.*)/(.*) {
return 301 http://tipacdn.яndex.net/sitename$uri;
}

location /photo {
rewrite ^/photo(.*)       http://tipacdn.яndex.net/sitename$1 permanent;
    }

и различные комбинации с (.*)(jpg|png|jpeg) и прочее.
  • Вопрос задан
  • 685 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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