LINUX.ORG.RU
решено ФорумAdmin

Редирект на nginx

 , , ,


0

1

Добрый день! Перенес контент на новый сайт, вот так выглядит редирект

server_name site_old.ru;
        rewrite ^ $scheme://site_new.ru/ptz-show$request_uri? permanent; #301-redirect

Т.е. главная страница редиректится да подстраницу другого домена, но мне еще нужно сделать такой редирект

С адреса

http://site_old.ru/blog/video/vse-programmy/novosti/vypusk-novostej-24-02-2016/ 

На

http://site_new.ru/ptz-show/vypusk-novostej-24-02-2016

Т.е. остается только последний кусок адреса, остальное заменить на ptz-show.

Как сделать не знаю. Спасибо заранее!

★★
Ответ на: комментарий от Difrex

У меня этих адресов тыщ 20. Это я как пример привел, структура везде одна...

blog/video/vse-programmy/novosti/

blog/video/vse-programmy/obshestvo/

blog/video/vse-programmy/kriminal/

и тд.

Мне надо мой адрес + концовка этих.

Sora ★★
() автор топика
Последнее исправление: Sora (всего исправлений: 1)
location ~ /blog/video/vse-programmy/novosti/([^/]+)/ {
    return 301 $scheme://site_new.ru/ptz-show/$1;
}

location / {
    return 301 $scheme://site_new.ru/ptz-show$request_uri;
}
beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

Спасибо большое, а если у меня еще меняется «novosti/» на всякую ерунду? Остальная часть адреса не меняется.

Sora ★★
() автор топика
Ответ на: комментарий от Sora

В смысле меняется? Там что угодно может быть? Тогда:

location ~ /blog/video/vse-programmy/[^/]+/([^/]+)/ {
    return 301 $scheme://site_new.ru/ptz-show/$1;
}
beastie ★★★★★
()
Ответ на: комментарий от Sora

Можно и немного хитрее:

location ~ ^/blog/video/vse-programmy/(?:novosti|obshestvo|kriminal)/([^/]+)/ {
    return 301 $scheme://site_new.ru/ptz-show/$1;
}

Это шобы более точно матчить URI. (?: — не захватывать группу)

beastie ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.