Как перенаправить на другой домен с помощью NGINX? - PullRequest
117 голосов
/ 18 мая 2011

Как я могу перенаправить mydomain.com и любой поддомен *.mydomain.com на www.adifferentdomain.com, используя NGINX?

Ответы [ 6 ]

243 голосов
/ 18 мая 2011

имя_сервера поддерживает совпадения суффиксов с использованием синтаксиса .mydomain.com:

server {
  server_name .mydomain.com;
  rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
}

или в любой версии 0.9.1 или выше:

server {
  server_name .mydomain.com;
  return 301 http://www.adifferentdomain.com$request_uri;
}
22 голосов
/ 17 апреля 2014
12 голосов
/ 12 февраля 2014

Зачем использовать модуль перезаписи, если вы можете сделать return? С технической точки зрения, return является частью модуля перезаписи, как , вы можете прочитать здесь , но этот фрагмент легче читать imho.

server {
    server_name  .domain.com;

    return 302 $scheme://forwarded-domain.com;
}

Вы также можете сделать переадресацию 301.

11 голосов
/ 18 мая 2011

Это должно работать через HTTPRewriteModule .

Пример переписать с www.example.com на example.com:

server {    
    server_name www.example.com;    
    rewrite ^ http://example.com$request_uri? permanent; 
}
7 голосов
/ 06 января 2017

Если вы хотите перенаправить запросы для «domain1.com» на «domain2.com», вы можете создать блок сервера, который выглядит следующим образом:

server {
    listen 80;
    server_name domain1.com;
    return 301 $scheme://domain2.com$request_uri;
}
0 голосов
/ 02 октября 2018

Временное перенаправление

rewrite ^ http://www.RedirectToThisDomain.com$request_uri? redirect;

Постоянное перенаправление

rewrite ^ http://www.RedirectToThisDomain.com$request_uri? permanent;

В файле конфигурации nginx для конкретного сайта:

server {    
    server_name www.example.com;
    rewrite ^ http://www.RedictToThisDomain.com$request_uri? redirect;

}
...