@VirgiL

Как в nginx сделать перенаправление с одного url на другой?

Как в nginx сделать следующее перенаправление:
с site.ru на newsite.ru
c site.ru/page на newsite.ru/new/page
Вариант, который использую я, не работает:
server {
listen 80;
server_name site.ru;
location / {
rewrite ^(.*) newsite.ru/$1 permanent;
}
location /page {
rewrite ^(.*) newsite.ru/new/page/$1 permanent;
}
}

UPD: заметил такую странность, выше в конфиге у меня прописан редирект c old.site.ru на newsite.ru/old/, так теперь при редиректе, который я описал выше открывается: newsite.ru/old/new/page/, то есть как я понимаю редирект происходит, вот только имя сервера nginx подставляет из предыдущего редиректа.
Есть мнение, что в данном случае должны помочь регулярные выражения, но как их правильно использовать для данного конректного конфига у меня в голове не укладывается.
  • Вопрос задан
  • 13430 просмотров
Пригласить эксперта
Ответы на вопрос 2
RicoX
@RicoX
Ушел на http://ru.stackoverflow.com/
Так попробуйте:
server_name old.site.ru www.old.site.ru;
location / {
        rewrite ^(.*)$ http://newsite.ru/old/$1 permanent;
        }
}
Ответ написан
server {
    server_name site.ru;
    rewrite ^ http://newsite.ru$request_uri? permanent;
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы