Как перенаправить на другой домен с помощью NGINX?

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

Ответ 1

server_name поддерживает совпадения суффикса с использованием синтаксиса .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;
}

Ответ 3

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

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

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

Ответ 4

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

server {
    server_name  .domain.com;

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

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

Ответ 5

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

server {
    listen 80;
    server_name domain1.com;
    return 301 $scheme://domain2.com$request_uri;
}