[redirect] NGINX를 사용하여 다른 도메인으로 리디렉션하는 방법은 무엇입니까?

NGINX 를 사용하도록 mydomain.com하위 도메인 *.mydomain.com을 리디렉션하려면 어떻게 www.adifferentdomain.com해야합니까?



답변

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;
}


답변

server {
    server_name .mydomain.com;
    return 301 http://www.adifferentdomain.com$request_uri;
}

http://wiki.nginx.org/HttpRewriteModule#return

http://wiki.nginx.org/Pitfalls#Taxing_Rewrites


답변

가능한 경우 다시 쓰기 모듈을 사용하는 이유는 return무엇입니까? 기술적으로 말하면, 여기에서 읽을 수return 있듯이 다시 쓰기 모듈의 일부 이지만이 스 니펫은 읽기가 더 쉽습니다.

server {
    server_name  .domain.com;

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

301 리디렉션을 제공 할 수도 있습니다.


답변

HTTPRewriteModule을 통해 작동합니다 합니다.

www.example.com에서 example.com으로 다시 쓰는 예제 :

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


답변

“domain1.com”에 대한 요청을 “domain2.com”으로 리디렉션하려면 다음과 같은 서버 블록을 만들 수 있습니다.

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


답변

임시 리디렉션

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;

}


답변

서버 {} 블록 내에 if 조건을 간단히 작성할 수 있습니다.

server {

    if ($host = mydomain.com) {
        return 301 http://www.adifferentdomain.com;
    }
}