Вопрос решен.
Ответ: не забывать про приоритеты между 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) и прочее.