@D9910099

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

Здравствуйте,
недавно я уже обращался за помощью в перенаправлении запроса.
Прошлое обращение и решение
Обращение:
есть домен и сайт, на нём форум:
http://site.ru/forum/viewforum.php?f=4

он переезжает на новый домен, и форум переехал в корень
http://newsite.ru/viewforum.php?f=4

Как сделать реврайт? Помогите пожалуйста.

Решение:
server {
        listen       80;
        server_name  site.ru;
		location ~ ^/forum/(.*)$ {
		return 301 http://newsite.su/$1$is_args$args; }
		}


Но теперь не перенаправляется корневая папка. То есть, если забить http://site.ru/forum/viewforum.php?f=4 то мы попадаем на http://newsite.ru/viewforum.php?f=4, а если забить просто http://site.ru/ по получаем ошибку 404.

Вопрос:
Как сделать так, чтоб при запросе
http://site.ru/forum/viewforum.php?f=4
перенаправляло на
http://newsite.ru/viewforum.php?f=4
и в тоже время при запросе
http://site.ru/всё_что_угодно (КРОМЕ - форума)
перенаправляло на
http://newsite.ru/

Огромное спасибо за помощь!
  • Вопрос задан
  • 200 просмотров
Решения вопроса 1
@wostex
Попробуйте так

server {
        listen       80;
        server_name  site.ru;
        location ~ ^/forum/(.*)$ {
          return 301 http://newsite.su/$1$is_args$args; 
        }

        location / {
          return 301 http://newsite.su/; 
        }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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